2010-04-28 5 views
5

Lassen Sie uns sagen, ich habe:Gibt es eine integrierte .NET-Methode zum Abrufen aller Eigenschaften und Werte für ein Objekt?

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

.... 

Gibt es eine integrierte Methode in .NET, die mir die Eigenschaften und Werte für variable i vom Typ Item erhalten lassen, die wie folgt aussehen könnte:

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

Ich weiß, dass .ToString() überlastet werden kann, um diese Funktionalität zu bieten, aber ich konnte mich nicht erinnern, ob dies bereits in .NET zur Verfügung gestellt wurde.

Antwort

5

Das Format, das Sie als ein Beispiel beschrieben haben sieht viel wie JSON, so dass Sie die JavaScriptSerializer verwenden:

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

Ich glaube, mein Gehirn in letzter Zeit im JSON-Modus gewesen ist. Ich bin wirklich nur auf der Suche nach einer einfachen Möglichkeit, ein Objekt in der Konsole auszudrucken, aber ja, es sieht definitiv wie JSON aus. –

5

Wenn es nicht JSON Sie verwenden, und nur ganz normale C# Klasse, haben alook bei System.Reflection Namespace

etwas ähnlich funktionieren würde

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); 
    } 
} 

mit Vorausgesetzt, sollten Sie properget und set an der richtigen Stelle für die properties möchten Sie arbeiten.

Verwandte Themen