我试图通过XML序列化从WCF创建一个SOAP对象,因为这个问题就像某些序列化不符合我预期的输出。我想创建一个相同的WSDL文件来支持我的旧客户端。
这就是我要求肥皂的要求:
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<areStatusComplete xmlns="http://tempuri.org/">
<listIds>
<string>12258</string>
<string>478526</string>
</listIds>
</areStatusComplete>
</s:Body>
预期产出是:
<soap:Body>
<ns1:areStatusComplete xmlns:ns1="http://tempuri.org/">
<listIds>88355</listIds>
<listIds>88356</listIds>
</ns1:areStatusComplete>
</soap:Body>
数据契约的C#代码是:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2612.0")]
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "")]
[System.ServiceModel.MessageContractAttribute(WrapperName = "areStatusComplete", WrapperNamespace = "", IsWrapped = true)]
public class areStatusComplete
{
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 0)]
[System.Xml.Serialization.XmlElementAttribute("listIds", Form = System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable = true, Order = 1)]
public string[] listIds { get; set; }
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 1)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string system;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "", Order = 2)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string user;
public areStatusComplete ()
{
}
public areStatusComplete (string[] listIds, string system, string user)
{
this.listIds = listIds;
this.system = system;
this.user = user;
}
}
服务合同代码:
[OperationContract]
areStatusCompleteResponse areStatusComplete (string[] listIds, string system, string user);
让我们知道确切的错误消息。从我所看到的是期望一个listIds数组,需要创建名为listids的自定义C#类,并且这需要是areStatusComplete类的内部属性
public class areStatusComplete
{
public ListIds listIds {..}
}