Родительский объект не отображается - сериализован с той же иерархией в контракте вызова клиента - сообщение
Дорогие,
Я пытаюсь использовать контракты сообщений в 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, но все равно проблема есть?