设置我DataContracts命名为 “”,它删除了一个命名空间,但我不得不删除其他:RESTFUL WCF中删除所有的xmlns
的xmlns:I =“http://www.w3.org/2001/XMLSchema-instance“
如果没有其他方法,我如何在返回并序列化命名空间之前序列化我的类?
我必须这样做才能与其他公司API一起工作。
设置我DataContracts命名为 “”,它删除了一个命名空间,但我不得不删除其他:RESTFUL WCF中删除所有的xmlns
的xmlns:I =“http://www.w3.org/2001/XMLSchema-instance“
如果没有其他方法,我如何在返回并序列化命名空间之前序列化我的类?
我必须这样做才能与其他公司API一起工作。
你唯一真正的选择,除了扔掉WCF之外,是改变你的服务契约来返回一个流并自己做XML序列化。你仍然可以使用数据合约序列化器,将所有命名空间转换为一个字符串去掉,然后转换回流,但这听起来很讨厌。
如果您需要接受没有POST机构中的名称空间的XML,那么您将面临更多的痛苦。在那种情况下,我会很快转储WCF。
我已经测试了没有命名空间的情况下向我的WCF发送xml,它似乎已经工作。我会考虑更改服务合同,谢谢。 – 2009-12-11 20:29:00
出于好奇,接受发布主体的参数是什么数据类型? – 2009-12-11 20:50:56
当我测试时,我刚发布了一个没有名称空间的xml格式的字符串,接收函数参数对象是一个自定义类,xml被序列化成...我的数据契约 – 2009-12-12 22:04:40
试着删除DataContract和DataMember属性。这可能会解决您的问题。
检查这个答案: http://stackoverflow.com/questions/7278569/how-to-remove-xml-namespace-when-return-type-is-generic-type-in-wcf-restful -serv/16675882#16675882 – DaniilZ 2013-05-21 17:26:34