我在这里有一个“不错”的问题,我花了很多时间没有任何结果。我浏览了谷歌,所以......没有任何成功。
我在桌面(Windows7-64Bit)上使用.Net 4.0,并且大量使用反射。
我当前的问题是我有一个自己的业务对象的实例。我正在使用 PropertyInfo 对象来访问实例的所有属性。一般来说,它运行良好,但有时我的属性包含一个通用列表(或一种(=> ObservableCollection<> 的重新实现)。当我尝试创建该属性类型的新实例并将属性的实例设置为声明实例时,它会因 TargetException 而失败。
PropertyInfo pi = instance.GetType().GetProeperty("Items"); // instance is a class instance of 'SomeData' class, Items is a property (ObservableCollection<T>)
pi.SetValue(instance, System.Activator.CreateInstance(pi.PropertyType), null); // the new instance (of pi.PropertyType) will be created without any problem, but setting in instance with SetValue failed with a TargetException.
我知道两者(属性和新实例)都有相同的时间。
我尝试了几十次,在创建新实例和将其设置为属性之间有或多或少的步骤......但没有任何成功。
提前致谢。
卡斯滕