在阅读了XmlSerializer with specified pattern not working的帖子后,我尝试实现这样的服务:OperationContract with the XmlSerializerFormat。但是我的 Soap 消息包含一个附加标记,即操作参数。如何删除该标签?
这是我的服务示例
[System.ServiceModel.ServiceContractAttribute(Namespace = "http://mynamespace.com/", ConfigurationName = "ConfigName")]
public interface MyInterfacePort
{
[System.ServiceModel.OperationContractAttribute(Action = "http://mynamespace.com/opName", ReplyAction = "*")]
[System.ServiceModel.FaultContractAttribute(typeof(MyError), Action = "http://mynamespace.com/opName", Name = "opErr")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
opResponse opName(opRequest request);
然后是序列化的请求:
[System.Serializable]
public partial class opRequest
{
public string myProperty;
生成的肥皂消息:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<opName xmlns="http://mynamespace.com/">
<request>
<myProperty>262157</myProperty>
</request>
</opName>
</s:Body>
</s:Envelope>
我的服务不处理额外的 <request> 标签
谢谢你的帮助。