У меня есть веб-сервис в C # .NET со следующим пространством имен:
[WebService (Namespace = "http://enterpriseName/wsName")]
Веб-сервис содержит WebMethod GetServiceObject и класс MyObject.Этот веб-метод возвращает строку, содержимое которой является сериализованным экземпляром MyObject.
[WebMethod (MessageName = "GetServiceObjectXML" Description = "Get ServiceObject from Server to Client")]
public string GetServiceObjectXML ()
Этот метод возвращает следующий XML:
<? Xml version = "1.0" encoding = "utf-16"?>
<ServiceObject Xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Services>
<service>
<id>3</id>
<date>02/08/2010</date>
</service>
</Services>
</ServiceObject>
Проблема, с которой я сталкиваюсь, заключается в том, что при вызовеэтот метод со стороны клиента и попробуйте десериализовать этот xml в класс MyObject, и я получу объект NULL.
После этого я создал новый WebMethod со следующей подписью:
[WebMethod (MessageName = "GetServiceObject" Description = "Get ServiceObject from Server to Client")]
public MyObject GetServiceObject ()
КогдаЯ вызываю этот метод со стороны клиента. Я правильно заполняю объект и могу без проблем сериализовать объект, но результатом сериализации является следующий xml:
<? Xml version = "1.0" encoding = "utf-16"?>
<ServiceObject Xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Services Xmlns="http://enterpriseName/wsName">
<service>
<id>3</id>
<date>02/08/2010</date>
</service>
</Services>
</ServiceObject>
, который отличается от сгенерированного xmlот WebMethod GetServiceObjectXML.
Как я могу обойти это, поскольку я намерен использовать оба метода на одном и том же веб-сервисе и у одного и того же клиента?