我根本不会使用 XmlDocument 作为返回类型。我建议简单地将 XML 作为字符串返回,例如:
<WebMethod()> _
Public Function HelloWorld() As String
Return File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "\Product.xml")
End Function
然后,在您的客户端应用程序中,您可以将 XML 字符串加载到 XmlDocument 对象中:
Dim xmlDoc As XmlDocument = New XmlDocument()
xmlDoc.LoadXml(serviceRef.HelloWorld())
但是,如果您需要保留返回 XmlDocument 的方法,请记住它是一个复杂类型,因此在客户端,它将表示为代理类型,而不是实际的 XmlDocument 类型。因此,您需要创建一个新的 XmlDocument 并从代理的 xml 文本中加载它:
Dim xmlDoc As XmlDocument = New XmlDocument()
xmlDoc.LoadXml(serviceRef.HelloWorld().InnerXml)