Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我需要一个特殊的序列化程序(C)_C#_.net_Serialization - Fatal编程技术网

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

C# 我需要一个特殊的序列化程序(C),c#,.net,serialization,C#,.net,Serialization,我正在寻找符合我要求的序列化程序, 序列化程序可以在.Net framework、开放式Sorce或付费产品中,只要它可以直接从代码中使用 现在,我的要求是: 强制性的 能够处理循环引用。 自动,在目标类中使用属性或继承,然后简单地写入文件。 正筛选,这意味着在目标类中,字段标记为要序列化的内容,而不是像DataContractSerializer中的[DataMember]和XmlSerializer中的[XmlIgnore]那样不序列化的内容。 必须使用默认构造函数。 不支持多态性,如Dat

我正在寻找符合我要求的序列化程序, 序列化程序可以在.Net framework、开放式Sorce或付费产品中,只要它可以直接从代码中使用

现在,我的要求是:

强制性的

能够处理循环引用。 自动,在目标类中使用属性或继承,然后简单地写入文件。 正筛选,这意味着在目标类中,字段标记为要序列化的内容,而不是像DataContractSerializer中的[DataMember]和XmlSerializer中的[XmlIgnore]那样不序列化的内容。 必须使用默认构造函数。 不支持多态性,如DataContractSerializer中的“KnownTypes”。 更可取

生成尽可能轻的文件。 尽可能快地序列化。 在非公共领域工作。 我检查了大部分的.Net序列化程序,试图在网上找到更多,结果发现很短, 它们要么不支持循环引用、多态性,要么不使用任何构造函数。 所以现在我已经没有主意了,我会很高兴能停下来休息一下


谢谢大家!

< P>最接近的是Bcl,但它不是互操作的。< / P> < P>我会看到谷歌的语言,它们适用于各种语言C++,java,python和.net .< /p> < p> BinaryFormatter的问题是,它是对FLDES不串行化的否定过滤,它不使用约束器。
关于google Protocol Buffers或ProtoBuff,我有机会使用它,它非常复杂,很难被称为自动的

。正如Darin回答的那样,NET二进制格式化程序可以处理其中的大部分。如果您对BinaryFormatter进行了测试,您会发现它存在什么样的缺点?什么是不可互操作?@leppie,不可互操作,我的意思是除了.NET之外,其他语言/平台无法理解这种格式。