C# 如何获得正确的命名空间输出
我有一个实现IXmlSerializable的类。当我使用自定义XmlWriter/XmlReader时,它工作正常并输出正确的输出。然而,当我在WCF中使用它时,我得到了一个非常干净的输出,它有点太干净了,因为它不包含任何类型信息:C# 如何获得正确的命名空间输出,c#,xml,wcf,xml-serialization,C#,Xml,Wcf,Xml Serialization,我有一个实现IXmlSerializable的类。当我使用自定义XmlWriter/XmlReader时,它工作正常并输出正确的输出。然而,当我在WCF中使用它时,我得到了一个非常干净的输出,它有点太干净了,因为它不包含任何类型信息: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <GetModelCResponse xmlns="http:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetModelCResponse xmlns="http://tempuri.org/">
<GetModelCResult>
<D xmlns="">D</D>
<E xmlns="">
<B>B</B>
<A>A</A>
</E>
</GetModelCResult>
</GetModelCResponse>
</s:Body>
</s:Envelope>
D
B
A.
但是,我希望这样(使用XmlWriter时确实会编写):
D
A.
B
我做错了什么?这是一个配置问题吗?不久前我们也遇到过类似的问题,我在过去的笔记中注意到了这一点:
看看这是否提供了一些有用的信息。不久前我们也有类似的情况,我在过去的笔记中提到了这一点:
看看这是否提供了一些有用的信息。您可以更改wcf使用的序列化程序 实现这一点的一种方法是用
[XmlSerializerFormat]
属性位于服务实现的顶部
如果你需要更多的铃声和哨子,你可以考虑自定义序列化器。< /P> 丹·里格斯比(Dan Rigsby)不久前在纽约大学写了一篇关于这个话题的文章。在文章的末尾,他讨论了如何创建IOperationBehavior的实现来
这个想法很简单,创建一个操作行为,用一个自定义的序列化程序替换普通的序列化程序。只要该类继承自属性,您就可以使用它来修饰实现。您可以更改wcf使用的序列化程序 实现这一点的一种方法是用
[XmlSerializerFormat]
属性位于服务实现的顶部
如果你需要更多的铃声和哨子,你可以考虑自定义序列化器。< /P> 丹·里格斯比(Dan Rigsby)不久前在纽约大学写了一篇关于这个话题的文章。在文章的末尾,他讨论了如何创建IOperationBehavior的实现来
这个想法很简单,创建一个操作行为,用一个自定义的序列化程序替换普通的序列化程序。只要该类继承自属性,您就可以使用它来装饰实现。谢谢您的回复,但我不知道如何使用它来更改实际输出。谢谢您的回复,但我不知道如何使用它来更改实际输出。