Как установить внутреннее имя для SPField в SharePoint 2010?

Я добавляю поля в список программно. строка добавляет новое поле к существующему списку

Lists.AddFieldToList(warrantyList, SPFieldType.Text, "internalFieldName", "ShownFieldName", "Comment", false, false, false);                    

Это метод, который вызывается:

public static bool AddFieldToList(SPList list, SPFieldType fieldType, string fieldInternalName, string fieldDisplayName, string fieldDescription, bool unique, bool required, bool indexed)
    {
        SPField field = new SPField(list.ParentWeb.Fields, fieldType.ToString(), fieldInternalName);             
        bool success = AddFieldToList(list, field, fieldDisplayName, fieldDescription, unique, required, indexed);
        return success;
    }

после первой строки метода поле заполняется большим количеством информации, но не внутренним именем (NULL) и заголовком который содержит "internalFieldName".

Во второй строке вызывается следующий метод:

  public static bool AddFieldToList(SPList list, SPField field, string fieldDisplayName, string fieldDescription, bool unique, bool required, bool indexed)
    {
        if (field != null &&
            (!list.Fields.Contains(field.Id)))
        {

            field.ReadOnlyField = false;
            field.Title = fieldDisplayName;
            field.Description = fieldDescription;
            field.EnforceUniqueValues = unique;
            field.Indexed = indexed;
            field.Required = required;
            list.Fields.Add(field);
            return true;
        }

        return false;
    }

После этого заголовок меняется на «ShownFieldName» (естественно). Но моя цель - иметь внутреннее имя «internalFieldName», которое имеет отображаемое имя «ShownFieldName», поэтому «ShownFieldName» отображается в списке, но я могу получить доступ к элементу по внутреннему имени

как field.InternalName доступно только для чтения: как можно Я решил эту проблему?

5
задан Ole Albers 20 February 2019 в 09:14
поделиться