2012-02-13 5 views
7

मैं अपने एमवीसी ऐप में कुछ जेसन बनाने की कोशिश कर रहा हूं और मैं केवल अपने स्रोत ऑब्जेक्ट से गुणों को शामिल करना चाहता हूं, अगर इसमें कुछ गुण मान हैं, तो सेट करें।क्या .NET गतिशील ऑब्जेक्ट के साथ फ्लाई पर गुण बनाना संभव है?

उदाहरण के लिए। return Json(new { Aaaa = source.Aaaa, Cccc = source.Ccccc.Value };

  • dddd केवल निर्धारित किया गया है:

    public class Foo 
    { 
        public string Aaaa { get; set; } 
        public string Bbbb { get; set; } 
        public int? Ccccc { get; set; } 
        public Lol Dddd { get; set; } 
    } 
    

    // Example Outputs.

    1. Aaaa और Ccccc मूल्यों केवल है। return Json(new { Dddd = source.Dddd }

    मैं कैसे मक्खी पर एक गुमनाम वस्तु बनाने के लिए कोशिश कर रहा था देखें। खैर, मैं ऐसा कर सकता हूं क्योंकि इस contrite उदाहरण में, मुझे पता है कि क्या सेट किया गया था। लेकिन जब वास्तविक कोड की बात आती है, तो मुझे वास्तव में क्या सेट किया गया था 'आंकड़ा' करना होगा और फिर गतिशील रूप से इसे वापस करना होगा।

    विचार Stack Exchange's Api Wrapper पर आधारित है .. जहां उनके पास कुछ वैकल्पिक मान हैं जो वे सेट किए जाने पर जेसन के माध्यम से वापस आते हैं।

  • +0

    संबंधित: http://stackoverflow.com/questions/2974008/adding-unknown-at-design-time-properties-to-an-expandoobject – Steven

    उत्तर

    11

    ExpandoObject पर एक नजर डालें, एक्सएमएल के साथ एक उदाहरण here

    जैसे दिया जाता है।

    dynamic contact = new ExpandoObject(); 
    contact.Name = "Patrick Hines"; 
    contact.Phone = "206-555-0144"; 
    ... etc ... 
    
    +1

    हेनरिक, कि expandoobject अपरोक्ष देखा() एक समय पहले सामान । मैं मदद नहीं कर सकता लेकिन इसके बारे में 'बॉब' अवलोकनों से सहमत हूं: http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the -expandoobject.aspx # 10003637 –

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