在C#中 给定一个哈希表,如{id:'1',name:'foo'}
如何动态创建具有相同成员的类的实例?
public class product {
public int id;
public string name;
}
我知道我会遇到问题,但我会在稍后处理这些问题。现在我甚至无法根据哈希表的键访问类的成员。我是以正确的方式来做这件事吗?
这就是我目前的方式。
product p = new product();
Type description = typeof(product);
foreach (DictionaryEntry d in productHash)
{
MemberInfo[] info = description.GetMember((string)d.Key);
//how do I access the member of p based on the memberInfo I have?
//p.<?> = d.Value;
}
由于
答案 0 :(得分:2)
首先,您需要将该成员作为属性进行访问。然后,您可以向该属性询问特定实例的值:
PropertyInfo property = description.GetProperty((string) d.Key);
object value = property.GetValue(p, null);
第二个参数是索引,仅当属性为indexer时才会生效。