经过广泛的搜索,我在这里问:有没有办法将哈希表“应用于”对象属性?例如,如果我有一个课程:
public class MyClass
{
public string PropertyOne {get;set;}
public int PropertyTwo {get;set;}
}
现在,如果我的Hashtable
为:
var table = new Hashtable {
{ "PropertyOne", "My string"},
{ "PropertyTwo", 4 }
};
我可以将表插入类的实例中,以便Object.PropertyOne成为“我的字符串”等,而无需自己解析吗?
答案 0 :(得分:2)
您所指的通常称为“自动转换”和“反序列化”之间的混合。在这种情况下,通过非递归反射最容易实现。
MyClass mine = new MyClass();
table.Cast<DictionaryEntry>()
.ToList()
.ForEach((entry) => {
var field = mine.GetType().getProperty((string)entry.Key);
field.SetValue(mine, entry.Value);
});