【发布时间】:2009-07-17 15:53:59
【问题描述】:
我需要检测一个对象是否是匿名创建的,比如 new{name=value,}
如果它是 AnonymousType,则应将其属性名称/值添加到
Dictionary<string,object>
这是我自己破解的:
var name="name";
var obj = new { name = new object(), };
var lookup = new Dictionary<string,object>();
if(obj.GetType().Name.StartsWith("<>f__AnonymousType"))
{
foreach (var property in obj.GetType().GetProperties())
{
lookup[property.Name] = property.GetValue(obj, null);
}
}
else
{
lookup[name]=obj;
}
我想知道是否有更好/更快的方法来检测 AnonymousTypes, 或者是否有更好/更快的方法将对象的属性名称/值转储到
Dictionary<string,object>
【问题讨论】:
-
你想用这个来完成什么?不管是什么,都必须有更好的方法来做到这一点。