我需要一个特殊的序列化器(C#)

时间:2010-01-27 09:51:38

标签: c# .net serialization

我正在寻找符合我要求的串行器, 序列化程序可以在.Net框架中,Open-Sorce或付费产品(只要它可以直接从代码中使用)。

现在,我的要求是:

强制

  • 能够处理循环引用。
  • 自动,在目标类中使用属​​性或继承,然后简单地写入文件。
  • 正向过滤,意味着在目标类中,字段被标记为序列化,而不是要序列化的内容(如DataContractSerializer中的[DataMember]而不是XmlSerializer中的[XmlIgnore])
  • 必须使用默认构造函数。
  • 支持多态(在DataContractSerializer中没有像'KnownTypes'这样的东西)。

优选

  • 尽可能轻松生成文件。
  • 尽可能快地序列化。
  • 适用于非公共领域。

我检查了大多数.Net序列化程序,并试图在网上找到更多,并且简短地说, 所有的wiche要么不支持循环引用,多态,要么不使用任何构造函数。 所以现在我的想法很简陋,我会很高兴有些踌躇。

谢谢!

3 个答案:

答案 0 :(得分:0)

BCL中最接近的是BinaryFormatter,但它无法互操作。

答案 1 :(得分:0)

我会看看谷歌的Protocol Buffers它们适用于各种语言C ++,Java,Python和.NET C#。

答案 2 :(得分:0)

BinaryFormatter的问题在于它是负过滤(标记fildes不是序列化)并且它不使用约束器。 关于谷歌协议缓冲区(或ProtoBuff)我有机会使用它,它非常复杂,很难被称为自动