-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 回答