Я определил следующий интерфейс
[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.
Я что-то не так делаю? Это нормальное поведение? Как получить тип возврата ResponseClass при использовании MessageContract?
Любая помощь с благодарностью.