ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – 我应该将哪种XML序列化方法用于公共API?

2019-07-05 02:07:36  阅读:222  来源: 互联网

标签:c net xmlserializer datacontractserializer ixmlserializable


我正在编写一个程序来构建一个树结构,该结构由继承自抽象Node类的类组成.我的程序中内置了许多不同类型的节点.但是,我还希望允许更高级的用户能够引用我的库并编写自己的Node派生.然后在我的应用程序通过Assembly.Load()启动时加载这些插件库.因此,我的应用程序使用的所有潜在节点类型在运行时才会知道.

另外,我希望能够将这些树序列化和反序列化为XML文件.我有一些XMLSerializer,DataContractSerializer和实现IXmlSerializable的经验.通常,我使用DataContractSerializer,因为它通常需要更少的代码然后实现IXmlSerializable,并且可以序列化XmlSerializer不能的私有字段.

然而,在这个项目中,我还必须考虑其他用户将创建派生自我的类的类,并且还必须添加序列化它们所需的任何代码或属性.

考虑到这一点,我应该采用一种序列化机制而不是另一种?

解决方法:

如果序列化和反序列化仅在您的应用程序中发生,并且如果不要求其他人能够读取序列化数据,则序列化格式不会影响API:就API的用户而言,您将序列化为不透明文件并从中反序列化.

在这种情况下,请使用DataContractSerializer,因为它可以在必要时序列化为二进制.

标签:c,net,xmlserializer,datacontractserializer,ixmlserializable
来源: https://codeday.me/bug/20190705/1382989.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有