6

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)'.

何か案は?

4

2 に答える 2

4

私はそれを修正することができました。Web サイトは最近 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");
于 2012-05-24T10:27:25.293 に答える
0

そのコードは私には問題ないように見えますが、うまくいくはずです。

最初の行が null ではなく、実際に documenttype を返していることを確認してください。

また、適切な「使用法」がありますか?これらの少なくともいくつかが必要になりますか?

using umbraco.cms.businesslogic.web;
using umbraco.NodeFactory;
using umbraco.cms.businesslogic.member;
using umbraco.cms.businesslogic.datatype;
于 2012-05-23T17:49:33.693 に答える