制御できない事前定義されたSOAP/XML形式を処理するWCFサービスを作成しています。
これが私の公開されたサービス契約です:
[OperationContract]
[WebInvoke(Method = "POST")]
bool SavePets(Pets Pets);
このサービスが期待するSOAPは次のとおりです。
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SavePets xmlns="http://tempuri.org">
<Pets>
<Dog>
<Name>Fido</Name>
</Dog>
<Dog>
<Name>Duke</Name>
</Dog>
<Cat>
<Name>Max</Name>
</Cat>
</Pets>
</SavePets>
</s:Body>
</s:Envelope>
ただし、メソッド名(SavePets)またはパラメーター名(Pets)のいずれかを削除する必要があるため、サービスはそれを予期していません。
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<Pets>
<Dog>
<Name>Fido</Name>
</Dog>
<Dog>
<Name>Duke</Name>
</Dog>
<Cat>
<Name>Max</Name>
</Cat>
</Pets>
</s:Body>
</s:Envelope>
DataContractsまたはMessageContractsを使用していません。私のペットクラスは次のようになります。
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = false, Namespace = "http://tempuri.org")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://tempuri.org", IsNullable = true)]
public partial class Pets
{...
}