2010-02-15 177 views
1

我有一个从flex调用的.Net Web服务。调用Web服务功能时,我们的程序员收到以下XML:从WebService中删除名称空间

<FunctionName xmlns="WSNamespace" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <FunctionName>Xml itself</FunctionName> 

他想得都一样,但没有命名空间,因为我们不需要它们。它如何在.Net部分上完成?

回答

1

使用

[WebService(Namespace = "")] 

,如果你不想要的命名空间。但这不是首选的方式。相反,您可以使用XmlNamespaceDeclaration来获取完全限定的名称空间。像这样

[XmlNamespaceDeclarations] 
public XmlSerializerNamespaces xmlns 
{ 
    get 
    { 
     XmlSerializerNamespaces xsn = new XmlSerializerNamespaces(); 
     xsn.Add("me", "http://anamespace/"); 
     return xsn; 
    } 

    set 
    { 
     // needed for serialization 
    } 
} 

签出更多的信息在: http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlnamespacedeclarationsattribute.aspx

+0

和:http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializernamespaces.add.aspx – Ulve 2010-02-15 13:05:01

+0

-1,因为他说他不喜欢命名空间。你和我都知道这是一个坏主意,但这正是他想要的,也许flex对于处理命名空间来说太愚蠢了。 – 2010-07-16 19:12:40