【问题标题】:Get property type of dynamic object in C# (even when value is null)在 C# 中获取动态对象的属性类型(即使值为 null)
【发布时间】:2012-11-08 23:54:07
【问题描述】:

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

我问的原因是因为我在 WPF 中尝试将视图值(字符串在我的情况下,文本框绑定到双属性)转换为object 类型的 presenter 值,而不是 double(如果对象不是动态的并且属性的返回类型为 double,则它会这样做)。

如果有像 TryGetMemberType 这样的地方,那就太好了...

【问题讨论】:

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

标签: c# wpf data-binding dynamic


【解决方案1】:

动态是不可能的:null 没有类型,动态没有元数据。

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

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

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 2013-02-19
    • 2016-10-07
    • 2019-11-27
    • 1970-01-01
    • 2011-09-01
    • 2014-07-02
    • 2017-05-27
    • 2011-07-13
    相关资源
    最近更新 更多