2012-07-25 13 views
5

वर्तमान में, मेरी मशीन पर 'ExpandoObject' काम का उपयोग करने के सबसे सरल उदाहरण भी नहीं।ExpandoObject अपेक्षा के अनुसार क्यों काम नहीं करता है?

दोनों

dynamic obj = new ExpandoObject(); 
obj.Value = 10; 
var action = new Action<string>((line) => Console.WriteLine(line)); 
obj.WriteNow = action; 
obj.WriteNow(obj.Value.ToString()); 

(from this website) और

dynamic sampleObject = new ExpandoObject(); 
sampleObject.test = "Dynamic Property"; 
Console.WriteLine(sampleObject.test); 

(from the MSDN examples) एक RuntimeBinderException के साथ विफल। मुझे लगता है कि मैंने कुछ गलत तरीके से कॉन्फ़िगर किया है, लेकिन मुझे यह हो रहा है कि यह क्या हो सकता है।

मैं .NET v4.0.30319 और विजुअल स्टूडियो 2010 एसपी 1 प्रीमियम का उपयोग कर रहा हूं। कृपया कुछ और पूछें जो आपको जानने की आवश्यकता हो सकती है। =)

+0

जंगली। यह किस तरह की परियोजना है - कंसोल? –

+0

हां, यह है .. और मैंने अभी एक नया, खाली कंसोल एप्लिकेशन बनाने की कोशिश की, और यह वहां काम करता है! मुझे लगता है कि मेरे सभी हैकिंग के लिए एक एकल कंसोल एप्लिकेशन का पुन: उपयोग करना बंद कर देना चाहिए। धन्यवाद =) – Jens

+0

आह, और यह डीबगर के बाहर भी काम करता है .. बहुत अजीब। – Jens

उत्तर

2

समाधान निर्देशिका में छिपी हुई "SolutionName.suo" फ़ाइल को हटाने से मेरे लिए यह समस्या ठीक हो गई।

मुझे अभी भी कोई संकेत नहीं है कि यह क्यों हुआ, हालांकि।

संपादित करें: एंड्रेस ज़ोलटन, जिन्होंने अपना उत्तर हटा दिया, सही ढंग से अनुमान लगाया। मैंने "सभी अपवादों को तोड़ दिया" सक्षम किया है और बेवकूफ था। =)

0

समस्या यह है कि Console.WriteLine में बहुत अधिक अधिभार हैं और इसलिए गतिशील भाग को सही ढंग से नहीं लगाया जा सकता है। आउटपुट को टाइप किए गए चर में पहले रखें या बस इसे कास्ट करें। उदा।

dynamic sampleObject = new ExpandoObject(); 
sampleObject.test = "Dynamic Property"; 
Console.WriteLine((string)sampleObject.test); 
+0

धन्यवाद! हालांकि, यह नहीं है। यदि एक अन्य प्रोजेक्ट में उपयोग किया जाता है, और यहां तक ​​कि यदि डीबगर के बिना चल रहा हो तो भी वही कोड काम करता है। – Jens

+0

लेकिन स्ट्रिंग के टाइपकास्ट हालांकि समस्या को ठीक करता है। –

+0

यह मेरी परियोजना में नहीं है, क्षमा करें। – Jens

संबंधित मुद्दे

 संबंधित मुद्दे