c# - 带有序列化的伪只读属性

标签 c# properties readonly xmlserializer

这样的事情有多糟糕:

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/

相关文章:

c# - 如何在同一项目中运行 IdentityServer 和 WebAPI

java - 如何在PropertyFile中指定user.home?

c# - 未按预期处理只读违规

javascript - 如果它有值,则将 html 输入框设置为只读

c# - ReactiveUI - 在使用 throttle 时测试订阅

C# 创建对象 obj = new T()?

PHP 类 $_SERVER 变量一个属性

grails - 如何在grails中创建只读 View ?

c# - 从有效负载 ID 获取许可证

c# - 未使用的属性会导致开销吗?