Restsharp - 将 XDocument 转换为对象

Restsharp - Convert XDocument to Object

我正在使用 RestSharp 请求这是一个简单的 SOAP 服务自动化项目。我通过 XDocument 加载 xml 但是,我不能在 request.AddBody.

中使用它

错误: 'System.InvalidOperationException' 类型的异常发生在 RestSharpXML.dll 但未在用户代码中处理

 public class SOAPSharp

 {
        XDocument currencyXML = XDocument.Load(@"../../Data/currencyXML.xml");

        [Test]
        public void xmlRequest() {

            try
            {
                var client = new RestClient();

                var request = new RestRequest("http://www.webservicex.net/periodictable.asmx?WSDL", Method.POST);
                request.XmlSerializer = new RestSharp.Serializers.DotNetXmlSerializer();
                request.RequestFormat = DataFormat.Xml;
                request.AddHeader("Content-Type", "application/xml; charset=utf-8");
               // request.AddBody(ParameterType.RequestBody);
                request.AddBody(currencyXML);

                var response = client.Execute(request);
            }

            catch (Exception)
            {
                throw;
            }

      }
    }

您的问题是 XDocument does not implement IXmlSerializable. Instead, use the root XElement 执行 IXmlSerializable:

request.AddBody(currencyXML.Root);

或者,只需将其加载为 XElement 开头:

var currencyXML = XElement.Load(@"../../Data/currencyXML.xml");