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/