2012-05-23 3 views
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)'. 

कोई भी विचार?

+0

उल्लेख करने के लिए भूल - मैं Umbraco 4.7.1 का उपयोग कर रहा –

उत्तर

4

मैं इसे ठीक करने में कामयाब रहा। वेबसाइट को हाल ही में उम्ब्राको 4.5 से उम्ब्राको 4.7.1 तक अपग्रेड किया गया था, इसलिए डीएलएल को हाल ही में बदल दिया जाना था। उम्ब्राको के पुराने संस्करण में विधि का रिटर्न प्रकार public void AddPropertyType था जबकि नया public PropertyType AddPropertyType था। स्पष्ट रूप से अपग्रेड के दौरान नई cms.dll की प्रतिलिपि नहीं बनाई गई थी, इसलिए मैंने इसे एक स्वच्छ उम्ब्राको 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"); 
0

यह कोड मुझे ठीक लग रहा है, इसे काम करना चाहिए।

सुनिश्चित करें कि आपकी पहली पंक्ति वास्तव में एक दस्तावेज़ टाइप कर रही है, न कि शून्य।

इसके अलावा, क्या आपके पास उचित 'उपयोग' है, आपको कम से कम इनमें से कुछ की आवश्यकता होगी?

using umbraco.cms.businesslogic.web; 
using umbraco.NodeFactory; 
using umbraco.cms.businesslogic.member; 
using umbraco.cms.businesslogic.datatype; 
संबंधित मुद्दे