使用XML定义文件以编程方式创建SharePoint 2010内容类型
本文关键字:2010 SharePoint 类型 创建 方式 定义 XML 文件 编程 使用 | 更新日期: 2023-09-27 18:19:07
是否可以使用XML定义文件以编程方式创建SharePoint 2010内容类型?可以通过以下方式添加SPFields:
SPContext.Current.Web.Fields.AddFieldAsXml("<xml />");
是否有类似的方式以编程方式添加内容类型到网站集合/网站?
您可以通过编程方式创建/添加内容类型,但不使用XML定义(据我所知)。您必须构造它,将其添加到内容类型集合中,并手动将字段引用添加到字段链接集合中。
一个粗略的例子是:
using (SPSite site = new SPSite("http://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
SPContentType contentType = new SPContentType(web.ContentTypes["Document"], web.ContentTypes, "Financial Document");
web.ContentTypes.Add(contentType);
contentType.Group = "Financial Content Types";
contentType.Description = "Base financial content type";
contentType.FieldLinks.Add(new SPFieldLink(web.Fields.GetField("OrderDate")));
contentType.FieldLinks.Add(new SPFieldLink(web.Fields.GetField("Amount")));
contentType.Update();
}
}
您不能以这种方式控制内容类型id。我更喜欢按照Greg Enslow的回答使用功能
最常见的方法是使用一个特性定义,然后为您的站点集合激活该特性。该特性的xml看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: Document (0x0101) -->
<ContentType ID="0x0101000728167cd9c94899925ba69c4af6743e"
Name="Financial Document"
Group="Financial Content Types"
Description="Base financial content type"
Version="0">
<FieldRefs>
<FieldRef ID="{1511BF28-A787-4061-B2E1-71F64CC93FD5}" Name="OrderDate" DisplayName="Date" Required="FALSE"/>
<FieldRef ID="{060E50AC-E9C1-4D3C-B1F9-DE0BCAC300F6}" Name="Amount" DisplayName="Amount" Required="FALSE"/>
</FieldRefs>
</ContentType>
</Elements>
完整的示例见http://msdn.microsoft.com/en-us/library/ms463449.aspx。
您尝试使用对象模型是否有特定的原因?