在asmx Web服务中将xml作为输入参数发送

时间:2014-07-04 12:24:45

标签: c# asmx

我有一个带有XML文档的asmx web服务作为输入参数。就像这样...

public System.Xml.XmlDocument Load_DOK(System.Xml.XmlDocument XmlDoc) 
{
   //some irrelevant code....
}

现在进行测试我创建了一个带有按钮的表单,并提供了本地服务参考...我想调用web服务并将XML作为输入参数传递...

这是代码......但我认为这是错误的..

private void button1_Click(object sender, EventArgs e)
        {
            //Load XML document
            string XmlFilePath = "C:\\Documents and Settings\\XPMUser\\Desktop\\STC-ovi\\STC_1.xml";
            XmlDocument XmlDoc = new XmlDocument();
            XmlDoc.Load(XmlFilePath);

            //Call web serivce and pass the XML as input parametar - > THIS PART IS WRONG I THINK!!!!
            TEST_FORMA.PrimatService.Load_DOKRequestBody req = new TEST_FORMA.PrimatService.Load_DOKRequestBody();
            TEST_FORMA.PrimatService.Load_DOKResponseBody resp = new TEST_FORMA.PrimatService.Load_DOKResponseBody();

            TEST_FORMA.PrimatService.PrimatServiceSoapClient WS = new TEST_FORMA.PrimatService.PrimatServiceSoapClient();

            resp = WS.Load_DOK(XmlDoc);

        }

在对象浏览器中我有这个组件

Load_DOKRequest
Load_DOKRequestBody
Load_DOKResponse
Load_DOKResponseBody

当我执行上面的代码时,我收到消息......“方法或操作没有实现。”

我认为上述网络服务电话是完全错误的......

1 个答案:

答案 0 :(得分:0)

当我尝试将XmlDocument发送到ASMX webservice时,抛出了以下错误:

  

无法转换为System.Xml.XmlDocument'到' System.Xml.Linq.XElement'

当我将XElement发送到ASMX Web服务而不是XmlDocument时,该方法正确地接收了XML。

ServiceReference1.WebService1SoapClient webservice = new ServiceReference1.WebService1SoapClient();
webservice.Load_DOK(new XElement("test"));

和webservice方法:

[WebMethod]
public System.Xml.XmlDocument Load_DOK(System.Xml.XmlDocument XmlDoc)
{
    return null;
}