C# 如何将XML文件传递给该方法?

C# 如何将XML文件传递给该方法?,c#,xml,service,C#,Xml,Service,我有一个服务中的方法具有此签名: 公共字符串submitInvoice(字符串用户名、字符串密码、字符串inXML) 我在C#代码中创建了如下XML: protected XmlDocument generateXML() { XmlDocument xmldoc = new XmlDocument(); XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");

我有一个服务中的方法具有此签名:

公共字符串submitInvoice(字符串用户名、字符串密码、字符串inXML)

我在C#代码中创建了如下XML:

   protected XmlDocument generateXML()
    {
        XmlDocument xmldoc = new XmlDocument();
        XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
        xmldoc.AppendChild(xmlnode);
        //root element
        XmlElement xmlelem = xmldoc.CreateElement("", "Invoices", "");
        xmldoc.AppendChild(xmlelem);



        //(child of the root)
        XmlElement xmlelem2 = xmldoc.CreateElement("", "InvoiceNumber", "");
        XmlText xmltext = xmldoc.CreateTextNode("222222");
        xmlelem2.AppendChild(xmltext);
        xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);



        return xmldoc;

    }
在我的计划中,我有:

XmlDocument xml=generateXML()

然后调用该方法:

oResponse=oWscape.subminVoice(sUserName,sPassword,*);
我不确定应该以XML的形式发送什么,它是string类型,但当我尝试使用string时,它给了我一个错误。如何在此处发送XML?

您可以通过document元素的OuterXml属性以字符串形式获取XML,如下所示:

submitInvoice("username", "password", xml.DocumentElement.OuterXml);

您遇到了什么错误?@nik您确定
submitInvoice()
的签名是您认为的吗?此外,你应该将澄清信息编辑到你的问题中,而不是分散在评论中。此外,对于错误消息,请用注释指出它们在代码示例中出现的位置。(因为行号可能不匹配。)实际上,您也应该可以使用
xml.OuterXml
。不同之处在于,
xml.OuterXml
为xml当前引用的任何节点提供标记,而
xml.DocumentElement.OuterXml
显式地是根节点。当我使用此选项时,会出现以下错误:无法隐式地将类型字符串转换为“system.xml.xmlnode”,听起来像是将其作为
submitInvoice传递(“username”、“password”、xml)
。示例中的
xml
变量声明为XmlDocument类型(派生自XmlNode)。
OuterXml
属性的类型为
string
,这是
submitInvoice
方法所期望的。我将其用作:submitInvoice(“用户名”、“密码”),xml.DocumentElement.OuterXml);或者oResponse=oWinscape.submitInvoice(sUserName、sPassword、xml.OuterXml);两者都给出了相同的错误:无法将类型字符串隐式转换为'system.xml.xmlnode'啊哈!我在你早些时候的评论中漏掉了。“无法将类型字符串隐式转换为'system.xml.xmlnode'”该错误与试图转换为xml有关。(而最初的问题是试图将XML作为字符串传递。)您对
submitInvoice()
的声明返回字符串,我猜
oreponse
被声明为XmlNode。