-1

質問があります。IDictionary<string, object>クラスに変換するには?ユーザーアカウントの作成と同様に。

WebSecurity.CreateUserAndAccount(UserName, Password, new { eny = 0 , eny2 = "sas"});

そして、私が持っています

void Create(String name, IDictionary<string, object> values)) {...}

とクラス

 class test {
    String name,
    int eny,
    int eny2
  }

辞書のデータを使用してオブジェクト テストを実行したいと考えています。

4

1 に答える 1

37

推測します

Dictionary<string, object> values = new Dictionary<string, object>()
{
    {"Name","Joe"},{"Id",123}
};

var test = GetObject<TestClass>(values);

class TestClass
{
    public string Name { get; set; }
    public int Id { get; set; }
}

T GetObject<T>(Dictionary<string,object> dict)
{
    Type type = typeof(T);
    var obj = Activator.CreateInstance(type);

    foreach (var kv in dict)
    {
        type.GetProperty(kv.Key).SetValue(obj, kv.Value);
    }
    return (T)obj;
}
于 2012-12-05T10:25:06.953 に答える