首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用具有私有和公共常量属性的XmlSerializer

使用具有私有和公共常量属性的XmlSerializer
EN

Stack Overflow用户
提问于 2009-01-09 19:32:51
回答 6查看 23.7K关注 0票数 7

让XmlSerializer也序列化类或结构的私有和“公有常量”属性的最简单方法是什么?对,并不是所有的输出都是公开的。将其设置为私有或添加const会导致值不能序列化。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-01-09 19:43:54

XmlSerializer只查看公共字段和属性。如果你需要更多的控制,你可以实现IXmlSerializable和序列化你想要的任何东西。当然,序列化常量没有多大意义,因为您不能反序列化为常量。

票数 17
EN

Stack Overflow用户

发布于 2009-07-28 21:47:21

即使不能序列化私有属性,您也可以使用内部setter来序列化属性,就像下面这样:

代码语言:javascript
运行
复制
public string Foo { get; internal set; }

为此,您需要使用sgen.exe预先生成序列化程序集,并将此程序集声明为friend:

代码语言:javascript
运行
复制
[assembly:InternalsVisibleTo("MyAssembly.XmlSerializers")]
票数 10
EN

Stack Overflow用户

发布于 2009-01-09 19:45:36

请查看.NET 3.0中引入的DataContractSerializer。它也使用XML格式,在很多方面,它比XmlSerializer更好,包括处理私有数据。有关完整的比较,请参阅http://www.danrigsby.com/blog/index.php/2008/03/07/xmlserializer-vs-datacontractserializer-serialization-in-wcf/

如果你只有.NET 2.0,有可以处理私有数据的BinarySerializer,但它当然是二进制格式。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/429380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档