C#序列化私有类成员

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

这个问题很简单,但在回答它的时候却显得一团糟。
每个人都建议使用公共getter/setter,但我的应用程序太大了,为每个成员创建getter/setter只会导致可维护性问题。
我是被迫在这里创建一个自定义的序列化,还是有一个这样的成员的魔力属性?
如何序列化私有类成员?
编辑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代替。