IDE:VS 2010 c#.net 4.0
我创建了一个简单的Web服务,它将XMLDocument作为参数
public class MyWebService : System.Web.Services.WebService
{
public void ReceiveXML(XmlDocument xDoc, string strXMLFileName)
{
XMLReceiver.Receive(xDoc, strXMLFileName);
}
}
当我运行此服务并使用添加服务引用添加到ProjectB时,转到参考文件而不是我找到
public void ReceiveXML(System.Xml.Linq.XElement xDoc, string strXMLFileName) {
ReceiveXMLRequest inValue = new ReceiveXMLRequest();
inValue.Body = new ReceiveXMLRequestBody();
inValue.Body.xDoc = xDoc;
inValue.Body.strXMLFileName = strXMLFileName;
}
这里我没有得到,因为我已经写了XmlDocument类型参数来接收为什么refrence.cs文件是用System.Xml.Linq.XElement xDoc参数而不是XMLDocument类型创建的函数..?
我试图通过在XMLDocument xdoc.load中加载abc.xml文件到webService(strABCContent);
答案 0 :(得分:1)
当您发布WCF服务时,您正在通过WSDL
描述的接口来解耦服务的实际实现,这是技术无关的。 WSDL将无法指定内容是.Net System.Xml.XmlDocument
,而是指定抽象(xs:any
如果我没记错的话)
这就是为什么在使用服务时(即使是来自相同的.Net技术堆栈),您将获得一个可能不同的客户端界面(与System.Xml.Linq.XElement
一样)。
您可以在客户端上使用Linq 2 Xml XDocument.Load
替换XmlDocument.Load
:
var myXDocument = XDocument.Load(strABCContent)
并将其传递给服务引用代理方法ReceiveXML