使用SOAP的Web服务中的前缀

时间:2011-02-25 02:20:55

标签: c# web-services serialization

我正在这个链接:

http://es.w3support.net/index.php?db=so&id=665327

我这是我需要的一部分,我使用与SoapDocumentMethodAttribute和Invoke方法相同类型的代码,这是我的问题。

在链接中,它们显示如何使用前缀获取响应,并且可以工作,但是请求是什么?,我需要向客户端发送带有前缀的xml结构。

我尝试添加     XmlSerializerNamespaces xsn = new XmlSerializerNamespaces();         xsn.Add(“mes-root”,“CAP”);

在调用方法之前,但不起作用

我希望有人可以帮助我,我真的很沮丧

1 个答案:

答案 0 :(得分:0)

首先,除非您使用.NET 2.0,否则您不应该使用ASMX Web服务或客户端进行任何新的开发。您应该使用“添加服务引用”,而不是“添加Web引用”。

其次,您链接的文章是XML Serialization - Missing Namespace Prefix at client end的翻译版本。

第三,请注意,提出该问题的人正在运行.NET 1.1,发布了错误的XML,并且从未实际报告过真正的问题。

最后,如果您的客户端需要特定的前缀,那么他们的代码中就会有一个致命的关键错误:这意味着他们实际上并没有使用XML进行通信。在XML中,前缀只是实际命名空间的别名。是否前缀并不重要,更不用说实际前缀了。以下各项完全相同:

<root xmlns="somenamespace"/>

<a:root xmlns:a="somenamespace"/>

<b:root xmlns:b="somenamespace"/>

请注意,OP所遇到的实际问题是她运行的是.NET 1.1,它在处理XML时遇到了一些错误。这个问题与前缀毫无关系!