在C#中获取动态对象的属性类型(即使值为null)

时间:2012-11-07 19:21:22

标签: c# wpf data-binding dynamic

我有一个DynamicObject包装器,它基本上是从另一个私有对象实例(以及其他东西)转发属性值。但有没有办法动态返回属性类型?

我之所以提出这个问题的原因是因为我在WPF中遇到绑定问题时试图转换视图值(字符串在我的情况下,文本框绑定到double属性)到类型对象的presenter值,而不是 double (如果对象不是动态的,并且属性的返回类型为double,则会出现这种情况。)

如果有像TryGetMemberType这样的东西会很棒......

1 个答案:

答案 0 :(得分:1)

动态无法做到这一点:null没有类型,动态没有元数据。

在大多数UI数据绑定代码中,虽然(包括WPF)主API是System.ComponentModel - 它支持一种动态行为(并且从1.0开始)。通常,您可以使用ICustomTypeDescriptor,TypeDescriptionProvider或ITypedList来提供自定义PropertyDescriptor实例。它们具有完整的元数据,包括类型信息。

我想知道这是否更适合您的需求。