C#-获取动态对象的PropertyDescriptorCollection

C#-获取动态对象的PropertyDescriptorCollection,c#,dynamic,expandoobject,propertyinfo,C#,Dynamic,Expandoobject,Propertyinfo,我想从ExpandoObject中填充PropertyDescriptorCollection,如下所示: PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(obj.GetType()); int propsCount = properties.Count; 但是我总是在propscont中得到0,即使动态对象有值 知道我需要知道ExpandoObject中每个属性的PropertyInfo,我怎么能绕

我想从
ExpandoObject
中填充
PropertyDescriptorCollection
,如下所示:

PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(obj.GetType());
int propsCount = properties.Count;
但是我总是在
propscont
中得到0,即使动态对象有值

知道我需要知道
ExpandoObject
中每个属性的
PropertyInfo
,我怎么能绕过它呢


谢谢。

ExpandoObject
没有属性,因此您无法为不存在的内容获取
PropertyInfo
。Bu您为什么需要
PropertyInfo
以及它与“我想填充
PropertyDescriptorCollection
”的关系?
ExpandoObject
中的属性不是真实的属性。您所能做的就是获取它们的名称及其值的类型。您应该使用自定义类型描述符为您的ExpandooObject提供属性描述符。您可能会发现有帮助。Expando对象实现IDictionary,因此无需使用反射来检查哪些属性具有dinamyc对象,Keys集合将包含属性名称和属性值,属性值作为对象,或者您可以作为CastedAct[propertyName]访问,这样您就可以获得所有信息、名称和,属性类型、值等。能否添加更多详细信息?为什么要填写
PropertyDescriptorCollection
?Expando object使用indexer或按@Gusman的建议将对象强制转换为
IDictionary
,为您提供对象的元信息。可能会增加更多的需求规格,这将帮助我们看到问题的大局。