【问题标题】:Restsharp - Convert XDocument to ObjectRestsharp - 将 XDocument 转换为对象
【发布时间】:2017-04-21 06:04:14
【问题描述】:

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

错误:RestSharpXML.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理

 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;
            }

      }
    }

【问题讨论】:

    标签: c# xml soap linq-to-xml restsharp


    【解决方案1】:

    您的问题是XDocument 没有实现IXmlSerializable。相反,使用根XElement,确实实现了IXmlSerializable:

    request.AddBody(currencyXML.Root);
    

    或者,只需将其作为 XElement 加载即可:

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

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      相关资源
      最近更新 更多