簡體   English   中英

如何從代碼中向Umbraco中的文檔類型添加屬性?

[英]How to add a property to a document type in Umbraco from code?

任何人都可以舉例說明如何以編程方式將屬性添加到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)'.

有任何想法嗎?

我設法修復它。 該網站最近從Umbraco 4.5升級到Umbraco 4.7.1,所以dll必須被更新的網站取代。 在舊版本的Umbraco中,方法的返回類型是public void AddPropertyType而新的一個public PropertyType AddPropertyType 顯然在升級過程中沒有復制新的cms.dll,所以我從一個干凈的Umbraco 4.7.1解決方案中復制了它,更改了代碼以接收返回類型並且它有所幫助。

必需的命名空間:

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

所以最后的代碼(假設引用了正確的程序集):

var dt = DocumentType.GetByAlias("TestDocType");
var pType = dt.AddPropertyType(new DataTypeDefinition(-49),"testprop", "test prop");

這段代碼看起來很好,它應該工作。

確保您的第一行實際上返回的是文檔類型,而不是null。

此外,你有適當的'使用',你至少需要其中一些嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM