MessageContractsでSOAP/XMLを使用していて、次のような指定された形式を返す必要があります。
検証が成功した場合:
<env:Envelope>
<env:Body>
<Success xmlns="http://tempuri.org"></Success>
</env:Body>
</env:Envelope>
失敗した場合:
<env:Envelope>
<env:Body>
<Failure xmlns="http://tempuri.org"></Failure>
</env:Body>
</env:Envelope>
たとえば、次の方法を考えてみましょう。MyResponseのタイプを返します。では、成功または失敗のXML要素を返すようにMyResponseを定義するにはどうすればよいですか?
public MyResponse SaveMessage(MyRequest request)
{
return new MyResponse();
}
このように、成功メッセージを問題なく返すことができます。ラップが解除され、成功のXML要素があります。ただし、FailureのXML要素も返すことができる必要があり、同じMyResponseタイプを使用してそれを行うことはできません。
[MessageContract(IsWrapped=false)]
public class MyResponse
{
[MessageBodyMember(Namespace = "http://tempuri.org")]
public Success Success { get; set; }
}