首先,为了让事情更清楚,我将从顶部解释我的场景:
我有一个具有以下签名的方法:
public virtual void SendEmail(String from, List<String> recepients, Object model)
我想要做的是生成一个匿名对象,它具有模型对象的属性以及前两个参数。将模型对象展平为 PropertyInfo[] 非常简单。因此,我想到创建一个字典,它保存 PropertyInfo 和前两个参数,然后转换为匿名对象,其中键是属性的名称,值是属性的实际值。
那可能吗?还有其他建议吗?
如果您确实想将字典转换为具有字典项目作为属性的对象,您可以使用ExpandoObject:
var dict = new Dictionary<string, object> { { "Property", "foo" } };
var eo = new ExpandoObject();
var eoColl = (ICollection<KeyValuePair<string, object>>)eo;
foreach (var kvp in dict)
{
eoColl.Add(kvp);
}
dynamic eoDynamic = eo;
string value = eoDynamic.Property;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)