Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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#_Serialization_Xml Serialization - Fatal编程技术网

C# 序列化私有结构-可以这样做吗?

C# 序列化私有结构-可以这样做吗?,c#,serialization,xml-serialization,C#,Serialization,Xml Serialization,我有一个包含私有结构的公共类。结构包含我想要序列化的属性(主要是字符串)。当我尝试使用XmlSerializer序列化结构并将其流式传输到磁盘时,我得到一个错误,指出只能序列化公共类型。我不需要,也不想,这个结构是公共的。有没有一种方法可以序列化它并保持它的私有性?我相信如果您实现了,那么您应该能够准确地控制数据序列化的内容和方式。 如果您查看所提供链接中的示例,它们会序列化一个私有字符串。谢谢。我想我可以做到这一点,但这让工作比我想象的要困难得多。@Randy我认为没有其他办法。我在过去遇到过

我有一个包含私有结构的公共类。结构包含我想要序列化的属性(主要是字符串)。当我尝试使用XmlSerializer序列化结构并将其流式传输到磁盘时,我得到一个错误,指出只能序列化公共类型。我不需要,也不想,这个结构是公共的。有没有一种方法可以序列化它并保持它的私有性?

我相信如果您实现了,那么您应该能够准确地控制数据序列化的内容和方式。
如果您查看所提供链接中的示例,它们会序列化一个私有字符串。

谢谢。我想我可以做到这一点,但这让工作比我想象的要困难得多。@Randy我认为没有其他办法。我在过去遇到过这种情况,对此感到非常沮丧。如果您使用XML序列化程序,它将只序列化公共数据成员,除非您实现IXmlSerializable接口(不是ISerializable,这是我在过去遇到的问题,我无法恢复私有数据)。错误是,只能序列化公共类型,而不能序列化公共成员。仅指出这点。@yoda从我阅读的XmlSerializer文档来看,它只显式地序列化公共成员:“在XML序列化期间,只有对象的公共属性和字段被序列化。”-来自。我假设私有类型也不会序列化,但是如果您自己(通过接口)进行序列化,您应该能够序列化任何您想要的东西。