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");
我正在使用 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");