Я обычно переопределяю метод ToString () для вывода имен свойств и связанных с ними значений. Я немного устал писать их от руки, поэтому ищу динамическое решение.
Основной:
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();
}
}
В настоящее время это выводит:
Prop1: System.String Prop1
Prop2: System.String Prop2
Желаемый результат:
Prop1: blah1
Prop2: blah2
Я открыт для других решений, он не должен использовать отражение, он просто должен произвести желаемый результат. вывод.