这样的事情有多糟糕:
public class Test
{
private string pKey = null;
public string Key {
get { return pKey; }
set { if (pKey==null) pKey=value;}
}
}
这将允许我对类使用 XMLSerializer
并确保 Key
在初始设置后不能更改。
最佳答案
我承认我最初的想法很糟糕。
我现在知道无法使用标准的 XML 序列化程序来实现。 “ssg”建议不会被序列化,因为它没有公共(public) setter 。
此处唯一的选择是实现 IXmlSerializable
,或使用另一种序列化方法,如 DataContractSerializer
。前者的问题是该类的每个派生类也必须实现 IXmlSerializable
;后者的问题是您不能使用属性或对生成的 XML 有太多控制权。
关于c# - 带有序列化的伪只读属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5372275/