这是我正在处理的Web服务的示例请求:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns0:postRequest xmlns:ns0="http://www.mynamespace.com">
<Firstname>Mike</Firstname>
<Lastname>Adam</Lastname>
</ns0:postRequest>
</S:Body>
</S:Envelope>
目前我在webmethod中将每个值读作单个参数,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
namespace myCode
{
[WebService(Namespace = "http://www.mynamespace.com")]
public class testInt : System.Web.Services.WebService
{
[SoapRpcMethod("http://www.mynamespace.com")]
[WebMethod]
public string postRequest(string Firstname, string Lastname)
{
return Lastname.ToString();
}
}
}
但在实际案例中还有更多参数。 我的问题是如何将它们作为webmethod中的一个参数读取,并指出我无法更改请求XML格式。
(顺便说一句,我创建了一个名为Firstname和Lastname的类作为其中的属性,并将此类用作webmethod中的参数,但它始终为null)
非常感谢
答案 0 :(得分:0)
我认为这就是你所追求的。它向您展示了如何制作XML模型绑定器。 https://lostechies.com/jimmybogard/2011/06/24/model-binding-xml-in-asp-net-mvc-3/
编辑: 我发现的更为尖锐的是http://docs.asp.net/en/latest/mvc/models/model-binding.html,其中讨论了Microsoft.AspNet.Mvc.Formatters.Xml nuget包。这可能是你最好的选择。