次のインターフェイスを定義しました
[ServiceContract]
public interface IHealthProducts
{
[OperationContract()]
ResponseClass OrderSelfSignedHealthCertificate();
}
次のタイプを返します
[MessageContract]
public class ResponseClass
{
[MessageBodyMember]
public string AnimalSpeciesCode
{
get;
set;
}
[MessageBodyMember]
public int VBN
{
get;
set;
}
}
私は、生成されたクライアント コードが OrderSelfSignedHealthCertificate メソッドを次のように公開することを期待していました。
HealthProductsClient client = new HealthProductsClient();
ResponseClass response = client.OrderSelfSignedHealthCertificate();
代わりに、ResponseClass のプロパティはResponseClassにラップされませんが、次のように公開されます。
string OrderSelfSignedHealthCertificate(out int VBN)
MessageContract を DataContract 属性に交換し、MessageBodyMember を DataMember 属性に交換すると、期待される動作 (ResponseClass 応答タイプ) が得られます。ただし、SOAP ヘッダーにいくつかのプロパティを配置する必要があるため、MessageContract が必要です。
私は何か間違ったことをしていますか?これは正常な動作ですか?MessageContract を使用する場合、 ResponseClassの戻り値の型を取得するにはどうすればよいですか?
どんな助けでも大歓迎です。