Im Allgemeinen überschreibe ich die Methode ToString(), um die Eigenschaftsnamen und die ihnen zugeordneten Werte auszugeben. Ich habe ein bisschen müde, diese von Hand zu schreiben, so dass ich für eine dynamische Lösung suchen.
Haupt:
TestingClass tc = new TestingClass()
{
Prop1 = "blah1",
Prop2 = "blah2"
};
Console.WriteLine(tc.ToString());
Console.ReadLine();
TestingClass:
public class TestingClass
{
public string Prop1 { get; set; }//properties
public string Prop2 { get; set; }
public void Method1(string a) { }//method
public TestingClass() { }//const
public override string ToString()
{
StringBuilder sb = new StringBuilder();
foreach (Type type in System.Reflection.Assembly.GetExecutingAssembly().GetTypes())
{
foreach (System.Reflection.PropertyInfo property in type.GetProperties())
{
sb.Append(property.Name);
sb.Append(": ");
sb.Append(this.GetType().GetProperty(property.Name).Name);
sb.Append(System.Environment.NewLine);
}
}
return sb.ToString();
}
}
Diese gibt derzeit aus:
Prop1: System.String Prop1
Prop2: System.String Prop2
Gewünschter Output:
Prop1: blah1
Prop2: blah2
Ich bin offen für andere Lösungen, es muss nicht unbedingt eine Reflexion sein, es muss nur das gewünschte Ergebnis liefern.