我正在尝试找出绑定表达式的源属性类型。我想这样做是因为我想使用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