我有一个已定义的对象,我希望使用PropertyDescriptor修改其属性之一,称为“ DeviceType”,但对我来说不起作用。

我可以检索属性DeviceType的值,但是当我使用SetValue()更改其属性值时,总是会遇到异常:“即使对象尝试将属性设置为对象引用,也未将其设置为对象的实例”与我刚刚检索的值相同。

这是一些代码:

PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(theBase);
var objValue = properties["DeviceType"].GetValue(theBase);

try
{
    if (theBase != null && objValue != null)
    {
        properties["DeviceType"].SetValue(theBase, objValue);
    }
}
catch (Exception ex)
{

}


任何帮助将非常感激。
谢谢。

最佳答案

创建我的对象时,属性未正确初始化,因此setter属性正在生成空引用异常错误。

关于c# - PropertyDescriptor-GetValue()工作时SetValue()的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11769627/

10-17 02:32