我正在使用 BinaryFormatter 按条件序列化类及其变量。例如:
[Serializable]
public class Class1
{
private Class2 B;
...
}
[Serializable]
public class Class2{...}
我希望变量 B 仅在远程处理时序列化,但当我将其序列化到文件存储时则不序列化。
问题:
1)我知道在XmlSerialization中我们可以使用[XmlIgnore]和{PropertyName}指定有条件地忽略属性。这是 [NonSerialized] 的等效方法吗?
2)对于具有[Serialized]属性的类,如何在运行时忽略它?
- 没有这样的方法。您可以通过实现来控制序列化
ISerializable
,如果您这样做,您将知道哪个序列化上下文处于活动状态(远程处理、文件等)
- AFAIK 没办法做到这一点,你为什么想要这个?
一般来说,我建议你不要使用BinaryFormatter
。如果有的话,维护也是一件令人头疼的事情。使用 XML 序列化或某种协议缓冲区。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)