我正在将一个对象模型保存为XML文件,但是当我加载它时,当我尝试使用PropertyInfo.SetValue()时会出现异常,因为该属性没有setter,只有getter。
我想要的是要么不保存只有getter的属性,要么在加载时确定是否可以尝试设置值。
有人知道如何做到这一点吗?
谢谢。
我想要的是要么不保存只有getter的属性,要么在加载时确定是否可以尝试设置值。
有人知道如何做到这一点吗?
谢谢。
PropertyInfo.GetSetMethod
- 如果属性是只读或设置器不公开,则此方法将返回null
。if (property.GetSetMethod() != null)
{
// Yup, you can write to it.
}
如果你可以接受一个非公共的setter,你可以使用:
if (property.GetSetMethod(true) != null)
{
// Yup, there's a setter - but it may be private
}