C# 如何从代码向Umbraco中的文档类型添加属性?

C# 如何从代码向Umbraco中的文档类型添加属性?,c#,asp.net,.net,umbraco,C#,Asp.net,.net,Umbraco,谁能给我举个例子,说明如何通过编程将属性添加到Umbraco CMS中的现有文档类型中?这就是我所尝试的: var dt = DocumentType.GetByAlias("TestDocType"); dt.AddPropertyType(new DataTypeDefinition(-49),"testprop", "test prop"); 但它抛出了一个例外: Method not found: 'Void umbraco.cms.businesslogic.ContentType.

谁能给我举个例子,说明如何通过编程将属性添加到Umbraco CMS中的现有文档类型中?这就是我所尝试的:

var dt = DocumentType.GetByAlias("TestDocType");
dt.AddPropertyType(new DataTypeDefinition(-49),"testprop", "test prop");
但它抛出了一个例外:

Method not found: 'Void umbraco.cms.businesslogic.ContentType.AddPropertyType(umbraco.cms.businesslogic.datatype.DataTypeDefinition, System.String, System.String)'.

有什么想法吗?

我觉得代码不错,应该可以用

确保第一行实际返回的是documentype,而不是null

此外,您是否有适当的“使用”,您至少需要其中一些

using umbraco.cms.businesslogic.web;
using umbraco.NodeFactory;
using umbraco.cms.businesslogic.member;
using umbraco.cms.businesslogic.datatype;

我设法把它修好了。该网站最近从Umbraco 4.5升级到Umbraco 4.7.1,因此dll必须替换为较新的dll。在旧版本的Umbraco中,该方法的返回类型为
public void AddPropertyType
,而新版本的返回类型为
public PropertyType AddPropertyType
。显然,在升级过程中,新的cms.dll没有被复制,所以我从一个干净的Umbraco 4.7.1解决方案中复制了它,更改了代码以接收返回类型,这很有帮助

所需名称空间:

using umbraco.cms.businesslogic.datatype;
using umbraco.cms.businesslogic.web;
因此,最终代码(假设引用了正确的程序集):


忘了提及-我正在使用Umbraco 4.7.1
var dt = DocumentType.GetByAlias("TestDocType");
var pType = dt.AddPropertyType(new DataTypeDefinition(-49),"testprop", "test prop");