将IDictionary <string,object =“”>转换为类</string,>

时间:2012-12-05 09:35:08

标签: c# .net asp.net-mvc

我有一个问题。如何将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
  }

我希望对字典中的数据进行对象测试。

1 个答案:

答案 0 :(得分:29)

我会猜测

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