C#序列化私有(private)类成员

标签 c# serialization

class Person
{
    public string m_name;
    private int m_age; // << how do I serialize the darn little rat?
}

一个简单的问题,但在尝试回答它时却显得一团糟。
每个人都建议使用公共(public) getter/setter,但我的应用程序太大,为每个成员制作一个 getter/setter 只会导致可维护性问题。

我是被迫在此处创建自定义序列化还是此类成员有魔法属性?
如何序列化私有(private)类成员?

编辑#1:
好的大家,很抱歉我不清楚,我写这个问题的时候有点不高兴,在试图找到解决方案后已经过了几个小时。
不管怎样,这里有更多的事实:
1. 我正在尝试对此类进行 XML 序列化。 目前我正在使用 System.Xml.Serialization.XmlSerializer
2. 我正在序列化为 XML 以实现版本兼容性,据我所知,二进制文件无法做到这一点。
3.我希望有某种属性,例如:

class Person
{
    public string m_name;
    [SerializeThat(ElementName="Age")]
    private int m_age; // << how do I serialize the darn little rat?
}

(继续事实#3)一个类上的属性,它看起来像:

[Serializable(DoPrivate = true, DoProtected = true)]
class Person
{
    public string m_name;
    private int m_age; // << how do I serialize the darn little rat?
}

现在,我该怎么做才能实现它?

最佳答案

假设有错字,我想将您重定向到 this SO article解决方案是改用 DataContractSerializer

关于C#序列化私有(private)类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4314982/

相关文章:

c# - 警告 CS1570 : XML comment on 'myclass' has badly formed XML -- 'A name was started with an invalid character.'

c# - 仅序列化对象的更改属性

objective-c - 是否可以将自定义对象序列化为 Objective-C 中的 plist 文件?

python - Pickle序列化顺序之谜

c# - 从 Dictionary<string,object> 初始化类型为 T 的对象

c# - .NET 中的反序列化问题

c# - 集成测试给出编译错误 CS0051

c# - 用C#打开Word文档,除非它有密码

C# - 从另一个字符串中删除第一次出现的子字符串的最简单方法

c++ - Qt UI 到 Arduino 串行连接。多次调用设置