我已经定义了以下接口
[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 响应类型)。但是,我需要 MessageContract,因为我需要将一些属性放在 SOAP 标头中。
难道我做错了什么?这是正常行为吗?使用 MessageContract 时如何获得ResponseClass返回类型?
非常感谢任何帮助。