是否可以用我自己的序列化程序替换 Windows Communication Foundation 中的 dataContractSerializer。如果可能的话,我怎样才能实现这一目标?
是的,您可以提供自己的序列化器实现。默认情况下,WCF 将使用DataContractSerializer http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx。要提供您自己的序列化器,您必须编写自己的序列化器IOperationBehavior
它查找并删除当前应用的DataContractSerializerOperationBehavior http://msdn.microsoft.com/en-us/library/system.servicemodel.description.datacontractserializeroperationbehavior.aspx来自OperationDescription::Behaviors http://msdn.microsoft.com/en-us/library/system.servicemodel.description.operationdescription.behaviors.aspx集合,然后应用一个自定义实例DataContractSerializerOperationBehavior
。然后 DataContractSerializerOperationBehavior 负责构造一个XmlObjectSerializer http://msdn.microsoft.com/en-us/library/system.runtime.serialization.xmlobjectserializer.aspx其实施CreateSerializer http://msdn.microsoft.com/en-us/library/system.servicemodel.description.datacontractserializeroperationbehavior.createserializer.aspx工厂方法。有关如何执行此操作的一些代码示例,查看丹·里格斯比 (Dan Rigsby) 撰写的这篇文章 https://web.archive.org/web/20130528055036/http://www.danrigsby.com/blog/index.php/2008/03/07/xmlserializer-vs-datacontractserializer-serialization-in-wcf/.
从那里开始,一切都是为了实现您自己的定制XmlObjectSerializer
这将允许您将 XML 信息集序列化为您想要的任何表示形式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)