2009-12-11 96 views
3

设置我DataContracts命名为 “”,它删除了一个命名空间,但我不得不删除其他:RESTFUL WCF中删除所有的xmlns

的xmlns:I =“http://www.w3.org/2001/XMLSchema-instance“

如果没有其他方法,我如何在返回并序列化命名空间之前序列化我的类?

我必须这样做才能与其他公司API一起工作。

+0

检查这个答案: 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

回答

1

你唯一真正的选择,除了扔掉WCF之外,是改变你的服务契约来返回一个流并自己做XML序列化。你仍然可以使用数据合约序列化器,将所有命名空间转换为一个字符串去掉,然后转换回流,但这听起来很讨厌。

如果您需要接受没有POST机构中的名称空间的XML,那么您将面临更多的痛苦。在那种情况下,我会很快转储WCF。

+0

我已经测试了没有命名空间的情况下向我的WCF发送xml,它似乎已经工作。我会考虑更改服务合同,谢谢。 – 2009-12-11 20:29:00

+0

出于好奇,接受发布主体的参数是什么数据类型? – 2009-12-11 20:50:56

+0

当我测试时,我刚发布了一个没有名称空间的xml格式的字符串,接收函数参数对象是一个自定义类,xml被序列化成...我的数据契约 – 2009-12-12 22:04:40

0

试着删除DataContract和DataMember属性。这可能会解决您的问题。