【发布时间】:2013-05-21 13:47:42
【问题描述】:
我正在尝试找出绑定表达式的源属性类型。我想这样做是因为我想使用UpdateSourceExceptionFilter 来提供比一般的“无法转换”更有用的错误消息。
在 .NET 4.5 中,我使用 ResolvedSource 和 ResolvedSourcePropertyName 和反射来获取源属性类型,如下所示:
PropertyInfo sourceProperty = expr.ResolvedSource.GetType().GetProperty(expr.ResolvedSourcePropertyName);
Type propertyType = sourceProperty.PropertyType;
这很好用。然而,这两个 BindingExpression 属性都是在 .NET 4.5 中引入的,而我仍在使用 4.0(由于 Windows XP 无法真正更新)。
那么在 .NET 4.0 中是否有一个很好的方法来做到这一点?我考虑过使用反射来获取内部SourceItem 和SourcePropertyName 属性,或者只使用私有Worker 来获取这些值,但我宁愿避免访问内部/私有属性或字段(我认为这也需要我对信任做点什么?有什么影响?)。
【问题讨论】:
标签: c# .net reflection .net-4.0