_ProgProg_ Ответов: 0

Родительский объект не отображается - сериализован с той же иерархией в контракте вызова клиента - сообщение


Дорогие,

Я пытаюсь использовать контракты сообщений в WCF, и у меня есть родительский объект с двумя субобъектами в каком-то методе, и после использования службы от тестового клиента метод принимает только субобъекты в качестве входных данных и игнорирует родительский объект!

Пример:
Метод WCF:
public GetEmployeeResponse GetEmployee_MessageContract(GetEmployeeRequest getEmployeeRequest)
{            
    //Some code and return getEmployeeResponse;
}

GetEmployeeRequest:
[MessageContract(IsWrapped =true, WrapperName = "GetEmployeeRequestObjectWrapped", WrapperNamespace ="http://www.test.com")]
    public class GetEmployeeRequest
    {
        [MessageHeader(Namespace = "http://www.test.com", Name = "AuthenticationHeaderObject")]
        public AuthenticationHeader AuthenticationHeader { get; set; }


        [MessageBodyMember(Namespace = "http://www.test.com", Name = "EMPID")]
        public int Id { get; set; }
    }

AuthenticationHeader:
[DataContract]
    public class AuthenticationHeader
    {
        [DataMember(Name = "KEY", Order =1)]
        public string UserName { get; set; }

        [DataMember(Name = "PASSWORD", Order = 2)]
        public string Password { get; set; }
    }


Главная проблема сейчас заключается в том, что при использовании этого метода из клиентского приложения я получаю следующее в файле service reference.cs:
Заголовок метода выглядит следующим образом:
GetEmployee_MessageContract(EmployeeService_Client.EmployeeService.AuthenticationHeader AuthenticationHeaderObject, int EMPID)


Я ожидаю, что это будет похоже на
GetEmployee_MessageContract(EmployeeService_Client.EmployeeService.GetEmployeeRequest GetEmployeeRequest)


Так в чем же проблема с приведенным выше кодом?

Что я уже пробовал:

я попытался использовать serializable вместо DataContract, но все равно проблема есть?

0 Ответов