2012-05-23 13 views
6

Czy mogę podać przykład, jak programowo dodać właściwość do istniejącego typu dokumentu w systemie CMS Umbraco? To, co starałem:Jak dodać właściwość do typu dokumentu w Umbraco z kodu?

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

Ale to zgłasza wyjątek:

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

jakieś pomysły?

+0

Zapomniałem wspomnieć - Używam Umbraco 4.7.1 –

Odpowiedz

4

Udało mi się to naprawić. Strona została niedawno uaktualniona z Umbraco 4.5 do Umbraco 4.7.1, więc biblioteki dll musiały zostać zastąpione nowszymi. W starszej wersji Umbraco typem zwrotu metody była public void AddPropertyType, a nowa public PropertyType AddPropertyType. Podobno podczas uaktualniania nowy plik cms.dll nie został skopiowany, więc skopiowałem go z czystego rozwiązania Umbraco 4.7.1, zmieniłem kod, aby otrzymać typ zwrotu i pomógł.

Wymagane przestrzenie nazw:

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

Więc ostateczny kod (zakładając odpowiednie zespoły są odniesione):

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

Ten kod wygląda dobrze dla mnie, powinien działać.

Upewnij się, że pierwsza linia rzeczywiście zwraca typ dokumentu, a nie null.

Co więcej, czy masz odpowiednie "użytkowanie", potrzebujesz przynajmniej niektórych z nich?

using umbraco.cms.businesslogic.web; 
using umbraco.NodeFactory; 
using umbraco.cms.businesslogic.member; 
using umbraco.cms.businesslogic.datatype; 
Powiązane problemy