Но можно "подсказать" ему, какое имя должно быть выбрано. Для этого при создании поля в качестве Title\DisplayName устанавливается то имя, которое мы хотим увидеть в InternalName ,а после создания Title изменяется.
Например вот так:
public static Field CreateFieldBySPField(FieldCollection fldColl, SPField fld, bool addToDefaultView) { var xml = fld.SchemaXml; var doc = new XmlDocument(); doc.LoadXml(xml); var attr = doc.DocumentElement.Attributes["DisplayName"]; if (attr != null) attr.Value = fld.InternalName; var outxml = doc.OuterXml; Field newFld = fldColl.AddFieldAsXml(outxml, addToDefaultView, AddFieldOptions.AddToNoContentType); newFld.Title = fld.Title; newFld.Update(); fldColl.Context.Load(newFld, f => f.InternalName, f => f.TypeAsString, f => f.Title); fldColl.Context.ExecuteQuery(); return newFld; }
Комментариев нет:
Отправить комментарий