2010-04-28 24 views
5

मान लें कि मेरे पास है:क्या ऑब्जेक्ट के लिए सभी गुणों और मानों को प्राप्त करने के लिए कोई अंतर्निहित .NET विधि है?

public class Item 
{ 
    public string SKU {get; set; } 
    public string Description {get; set; } 
} 

.... 

क्या .NET में एक अंतर्निहित विधि है जो मुझे Item प्रकार xxx21 के गुणों और मानों को प्राप्त करने देगी जो शायद इस तरह दिखें:

{SKU: "123-4556", Description: "Millennial Radio Classic"} 

मुझे पता है कि .ToString() को इस कार्यक्षमता प्रदान करने के लिए अधिभारित किया जा सकता है, लेकिन मुझे याद नहीं आया कि यह पहले से ही .NET में प्रदान किया गया था।

उत्तर

5

प्रारूप आपको एक उदाहरण के रूप में वर्णित किया है, JSON की तरह एक बहुत लग रहा है तो आप JavaScriptSerializer इस्तेमाल कर सकते हैं:

string value = new JavaScriptSerializer().Serialize(myItem); 
+0

मुझे लगता है कि मेरे मस्तिष्क JSON मोड में हाल ही में किया गया है। मैं वास्तव में कंसोल में किसी ऑब्जेक्ट को मुद्रित करने का एक आसान तरीका ढूंढ रहा हूं, लेकिन हाँ, यह निश्चित रूप से JSON जैसा दिखता है। –

0

आप इस तरह के JSON.NET या के रूप में एक JSON पुस्तकालय इस्तेमाल कर सकते हैं में निर्मित JavaScriptSerializer

5

यह प्रयोग कर रहे हैं और सिर्फ सामान्य सी # वर्ग JSON नहीं है, तो, System.Reflection नाम स्थान पर alook

कुछ इसी तरह काम करेगा

Item item = new Item(); 
foreach (PropertyInfo info in item.GetType().GetProperties()) 
{ 
    if (info.CanRead) 
    { 

     // To retrieve value 
     object o = info.GetValue(myObject, null); 

     // To Set Value 
     info.SetValue("SKU", "NewValue", null); 
    } 
} 

साथ प्रदान की है आप जगह में properget और set होना चाहिए properties के लिए आप काम करना चाहते हैं।