System.Reflection.PropertyInfo.GetValue() - 降级.NET版本 - 缺少方法签名

use*_*548 6 .net c# reflection

为了在Server 2003上运行.NET控制台应用程序,我们不得不将我们的一个核心库从.NET 4.5降级到4.0.除此之外,这个库有一个类,它执行一些反射,循环访问对象的属性以获取它们的值 Propertyinfo.GetValue()

根据MSDN文档,PropertyInfo.GetValue (Object)仅在.NET 4.5中.在.NET 4.0中,此方法存在,但是在形式中PropertyInfo.GetValue (Object, Object[])(额外的参数是知道如何处理索引属性).

如果我们要降级此代码,我们需要知道在PropertyInfo.GetValue Method (Object)遇到索引属性时会发生什么,因此我们可以使用镜像来反映此功能PropertyInfo.GetValue Method (Object, Object[]).有人可以帮忙吗?

小智 7

文档并不清楚这一点,但是在反编译器中检查实现表明property.GetValue(obj)只是调用property.GetValue(obj, null)而没有任何检查,并且没有任何例外.任何异常,你会从中获取property.GetValue(obj)因此正好,你会从得到的异常property.GetValue(obj, null),你应该没有问题,更新您的来电.