C# 序列化私有结构-可以这样做吗?
我有一个包含私有结构的公共类。结构包含我想要序列化的属性(主要是字符串)。当我尝试使用XmlSerializer序列化结构并将其流式传输到磁盘时,我得到一个错误,指出只能序列化公共类型。我不需要,也不想,这个结构是公共的。有没有一种方法可以序列化它并保持它的私有性?我相信如果您实现了,那么您应该能够准确地控制数据序列化的内容和方式。C# 序列化私有结构-可以这样做吗?,c#,serialization,xml-serialization,C#,Serialization,Xml Serialization,我有一个包含私有结构的公共类。结构包含我想要序列化的属性(主要是字符串)。当我尝试使用XmlSerializer序列化结构并将其流式传输到磁盘时,我得到一个错误,指出只能序列化公共类型。我不需要,也不想,这个结构是公共的。有没有一种方法可以序列化它并保持它的私有性?我相信如果您实现了,那么您应该能够准确地控制数据序列化的内容和方式。 如果您查看所提供链接中的示例,它们会序列化一个私有字符串。谢谢。我想我可以做到这一点,但这让工作比我想象的要困难得多。@Randy我认为没有其他办法。我在过去遇到过
如果您查看所提供链接中的示例,它们会序列化一个私有字符串。谢谢。我想我可以做到这一点,但这让工作比我想象的要困难得多。@Randy我认为没有其他办法。我在过去遇到过这种情况,对此感到非常沮丧。如果您使用XML序列化程序,它将只序列化公共数据成员,除非您实现IXmlSerializable接口(不是ISerializable,这是我在过去遇到的问题,我无法恢复私有数据)。错误是,只能序列化公共类型,而不能序列化公共成员。仅指出这点。@yoda从我阅读的XmlSerializer文档来看,它只显式地序列化公共成员:“在XML序列化期间,只有对象的公共属性和字段被序列化。”-来自。我假设私有类型也不会序列化,但是如果您自己(通过接口)进行序列化,您应该能够序列化任何您想要的东西。