我正在尝试查找绑定表达式的源属性类型。我想这样做是因为我想使用UpdateSourceExceptionFilter来提供比通用的“无法转换”更有用的错误消息。
在.NET 4.5中,我使用反射和ResolvedSource以及ResolvedSourcePropertyName来获取源属性类型,如下所示:
这很好地实现了。然而,这两个BindingExpression属性仅在.NET 4.5中引入,而我仍在使用4.0(由于Windows XP无法升级)。
那么,在.NET 4.0中有没有好的方法来解决这个问题?我考虑过使用反射获取内部的SourceItem和SourcePropertyName属性或者只是私有的Worker来获取这些值,但我宁愿避免访问内部/私有属性或字段(我认为这也需要我对信任做一些事情?有哪些影响?)。
在.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来获取这些值,但我宁愿避免访问内部/私有属性或字段(我认为这也需要我对信任做一些事情?有哪些影响?)。