2012-10-13 19 views
5

मैं नीचे की तरह मेरे वस्तु प्रारंभ करने की आवश्यकता:कोडडॉम के साथ ऑब्जेक्ट कैसे प्रारंभ करें?

var obj = new EduBranch { 
    Id = model.Id, 
    WorklevelId = model.WorklevelId, 
    EdulevelId = model.EdulevelId, 
    Title = model.Title, 
    StartEduYearId = model.StartEduYearId, 
    EndEduYearId = model.EndEduYearId, 
}; 

लेकिन CodeDOM में मैं केवल मिल सकता है:

var objectCreate1 = new CodeObjectCreateExpression("EduBranch", 
    new CodeExpression[]{}); 

और इस कोष्ठक के बजाय प्रारंभ करने में कोष्ठकों का उपयोग कर रहा है। क्या इसके लिए कोई कोडडॉम दृष्टिकोण है? (मैं पहले से ही स्ट्रिंगबिल्डर का उपयोग कर अपना कोड बना रहा हूं लेकिन मैं कोडडॉम दृष्टिकोण की तलाश में हूं) धन्यवाद

उत्तर

5

कोडडॉम वर्तमान में object initializers (या उस मामले के लिए संग्रह प्रारंभकर्ताओं) का समर्थन नहीं करता है।

अन्य प्रौद्योगिकियों (उदाहरण के लिए T4 templates) की वजह से कोडडॉम वर्षों से पक्षपात से बाहर हो गया है।

कहा यही कारण है, क्योंकि इस लाइन:

var obj = new EduBranch(); 

obj.Id = model.Id; 
obj.WorklevelId = model.WorklevelId; 
obj.EdulevelId = model.EdulevelId; 
obj.Title = model.Title; 
obj.StartEduYearId = model.StartEduYearId; 
obj.EndEduYearId = model.EndEduYearId; 

आप उपरोक्त उत्पन्न करने के लिए CodeDOM उपयोग कर सकते हैं, और एक ही

+0

टी -4 है मिलती है:

var obj = new EduBranch { Id = model.Id, WorklevelId = model.WorklevelId, EdulevelId = model.EdulevelId, Title = model.Title, StartEduYearId = model.StartEduYearId, EndEduYearId = model.EndEduYearId, }; 

प्रभावी रूप से एक ही रूप में है डमी के लिए कोड पीढ़ी। हां, यह छोटी, त्वरित परियोजनाओं के लिए है, लेकिन कोडडॉम की तुलना में बड़े पैमाने पर वेब सेवा या एंटरप्राइज़ एप्लिकेशन के लिए अभी भी कोई विकल्प नहीं है। मेरे बारे में एकमात्र शिकायत जेनेरिक प्रकारों के लिए समर्थन की कमी है। इसके अलावा, जब आपके पास असली काम करने के लिए कोई विकल्प नहीं है। –