如何实现saop信封消息的肥皂接收器c# 我正在将我的应用程序与旧系统集成,应该响应我的系统作为回叫响应。 我的网络服务应该收到这条肥皂消息
creationTimeStamp
如何构建接受此肥皂消息的Web服务
答案 0 :(得分:0)
您可以尝试以下
[HttpPost]
Public async Task<IHttpActionResult> ProcessRequest(string saopRequest)
{ //here just a bit of string manipulation
var index = soapRequest.IndexOf("<ns2:processRequest");
var lasindex = soapRequest.IndexOf("</ns2:processRequest>");
var length = lasindex - index +"</ns2:processRequest>".Length ;
var body = soapRequest.Substring(index,length);
var request = body.Replace("ns2:", string.Empty).Replace("xmlns:ns2=\"http://b2b.mobilemoney.mtn.zm_v1.0/\"",string.Empty);
XDocument xResult = XDocument.Parse(request);
XmlSerializer deserializer = new XmlSerializer(typeof(ProcessRequest), new XmlRootAttribute("processRequest"));
if (xResult.Root != null)
{
var finalRequest= (ProcessRequest)deserializer.Deserialize(xResult.Root.CreateReader());
//do what you want here
}
}
[XmlRoot(ElementName="parameter")]
public class Parameter {
[XmlElement(ElementName="name")]
public string Name { get; set; }
[XmlElement(ElementName="value")]
public string Value { get; set; }
}
[XmlRoot(ElementName="processRequest")]
public class ProcessRequest {
[XmlElement(ElementName="serviceId")]
public string ServiceId { get; set; }
[XmlElement(ElementName="parameter")]
public List<Parameter> Parameter { get; set; }
}
}