11

重複の可能性:
C# リフレクションを介して文字列プロパティの値を取得するにはどうすればよいですか?

public class myClass
{
    public int a { get; set; }
    public int b { get; set; }
    public int c { get; set; }
}


public void myMethod(myClass data)
{
    Dictionary<string, string> myDict = new Dictionary<string, string>();
    Type t = data.GetType();
    foreach (PropertyInfo pi in t.GetProperties())
    {
        myDict[pi.Name] = //...value appropiate sended data.
    }
}

3 の単純なクラスproperties。このクラスのオブジェクトを送信します。property namesたとえば、すべての値とその値を1つにループするにはどうすればよいdictionaryですか?

4

2 に答える 2

39
foreach (PropertyInfo pi in t.GetProperties())
    {
        myDict[pi.Name] = pi.GetValue(data,null)?.ToString();

    }
于 2012-04-25T12:00:08.907 に答える
10

これはあなたが必要とすることをするはずです:

MyClass myClass = new MyClass();
Type myClassType = myClass.GetType();
PropertyInfo[] properties = myClassType.GetProperties();

foreach (PropertyInfo property in properties)
{
    Console.WriteLine("Name: " + property.Name + ", Value: " + property.GetValue(myClass, null));
}

出力:

名前: a、値: 0

名前: b、値: 0

名前: c、値: 0

于 2012-04-25T12:00:37.817 に答える