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. 我希望有某种类似的属性:
<code>class Person
{
public string m_name;
[SerializeThat(ElementName="Age")]
private int m_age; // << how do I serialize the darn little rat?
}
</code>
或者(事实 #3 的延续)一个应用于 class 的属性,看起来像这样:
<code>[Serializable(DoPrivate = true, DoProtected = true)]
class Person
{
public string m_name;
private int m_age; // << how do I serialize the darn little rat?
}
</code>
现在,我应该怎么做才能实现它?