转换字典 要匿名对象?
首先,为了使事情更清楚,我将从顶部解释我的情况:
我有一个具有以下签名的方法:
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;
但是我不确定这样做会如何帮助您。
以上是 转换字典 要匿名对象? 的全部内容, 来源链接: utcz.com/qa/408932.html