gpt4 book ai didi

sharepoint - 使用 CSOM(不使用 XML)以编程方式在 SharePoint 中创建字段

转载 作者:行者123 更新时间:2023-12-03 20:34:19 37 4
gpt4 key购买 nike

是否可以使用 CSOM 而不是使用 XML 在 SharePoint 中创建字段?

我见过很多使用 XML 的例子,但没有一个只是以编程方式设置字段的属性?

fields.Add(new **FieldCreationInformation** {
InternalName = "Test",
etc..
});

最佳答案

这是可行的,在下面的例子中引入了 FieldCreationInformation class :

[XmlRoot("Field")]
public class FieldCreationInformation
{
[XmlAttribute("ID")]
public Guid Id { get; set; }

[XmlAttribute()]
public string DisplayName { get; set; }

[XmlAttribute("Name")]
public string InternalName { get; set; }

[XmlIgnore()]
public bool AddToDefaultView { get; set; }


//public IEnumerable<KeyValuePair<string, string>> AdditionalAttributes { get; set; }

[XmlAttribute("Type")]
public FieldType FieldType { get; set; }

[XmlAttribute()]
public string Group { get; set; }

[XmlAttribute()]
public bool Required { get; set; }


public string ToXml()
{
var serializer = new XmlSerializer(GetType());
var settings = new XmlWriterSettings();
settings.Indent = true;
settings.OmitXmlDeclaration = true;
var emptyNamepsaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });

using (var stream = new StringWriter())
using (var writer = XmlWriter.Create(stream, settings))
{
serializer.Serialize(writer, this, emptyNamepsaces);
return stream.ToString();
}
}



public FieldCreationInformation()
{
Id = Guid.NewGuid();
}

}

然后是用于创建新字段的扩展方法:
public static class FieldCollectionExtensions
{
public static Field Add(this FieldCollection fields, FieldCreationInformation info)
{
var fieldSchema = info.ToXml();
return fields.AddFieldAsXml(fieldSchema, info.AddToDefaultView, AddFieldOptions.AddFieldToDefaultView);
}
}

用法
var fieldInfo = new FieldCreationInformation();
fieldInfo.FieldType = FieldType.Geolocation;
fieldInfo.InternalName = "ContactsLocation";
fieldInfo.DisplayName = "Contacts Location";
ctx.Site.RootWeb.Fields.Add(fieldInfo);
ctx.ExecuteQuery();

关于sharepoint - 使用 CSOM(不使用 XML)以编程方式在 SharePoint 中创建字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657838/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com