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

获取C#中动态对象的属性类型(即使值为null),c#,wpf,data-binding,dynamic,C#,Wpf,Data Binding,Dynamic,我有一个DynamicObject包装器,它基本上是从另一个私有对象实例(除其他外)转发属性值。但是有没有办法动态返回属性类型呢 我问这个问题的原因是,我在WPF中尝试将视图值(string在我的例子中,文本框绑定到double属性)转换为类型为object而不是double的presenter值时遇到了问题(如果对象不是动态的,并且属性的returntype为double,则会出现这种情况) 如果有像TryGetMemberType这样的东西,那就太好了……不,这在dynamic中是不可能的:

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

我问这个问题的原因是,我在WPF中尝试将视图值(string在我的例子中,文本框绑定到double属性)转换为类型为object而不是double的presenter值时遇到了问题(如果对象不是动态的,并且属性的returntype为double,则会出现这种情况)


如果有像TryGetMemberType这样的东西,那就太好了……

不,这在dynamic中是不可能的:null没有类型,dynamic没有元数据

但在大多数UI数据绑定代码(包括WPF)中,主要API是System.ComponentModel,它支持一种形式的动态行为(从1.0开始就支持这种行为)。通常,您会使用ICustomTypeDescriptor、TypeDescriptionProvider或ITypedList来提供自定义PropertyDescriptor实例。这些实例包含完整的元数据,包括类型信息


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

不,这在dynamic中是不可能的:null没有类型,dynamic没有元数据

但在大多数UI数据绑定代码(包括WPF)中,主要API是System.ComponentModel,它支持一种形式的动态行为(从1.0开始就支持这种行为)。通常,您会使用ICustomTypeDescriptor、TypeDescriptionProvider或ITypedList来提供自定义PropertyDescriptor实例。这些实例包含完整的元数据,包括类型信息


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

您是否尝试过Typeof(object.property)?@Ben在任何类型的c#中都无效,无论是静态的、多态的还是动态的。您尝试过Typeof(object.property)的ID吗?@Ben在任何类型的c#中都无效,无论是静态的、多态的还是动态的