исключение типа возврата веб-службы - PullRequest
2 голосов
/ 26 июля 2010

У меня есть веб-сервис и его методы возвращают класс, который называется WSResult. WSResult имеет 2 свойства. Тип одного из свойств - int, а тип другого - object. Я хочу вернуть другой тип с этим вторым свойством. вы можете увидеть мой WSREult

[Serializable]
public class WSResult
{

    public int M_Status { get; set; }
    public object M_ResultObject { get; set; }
}

Но когда я хочу вернуть DataSet или другой сериализуемый объект с M_ResultObject, у меня возникает ошибка. Ошибка:

System.Web.Services.Protocols.SoapException: Server was unable to process request.     
---> System.InvalidOperationException: 
        There was an error generating the XML document. 
---> System.InvalidOperationException: 
        The type System.Xml.Linq.XDocument was not expected. 
        Use the XmlInclude or SoapInclude attribute to specify types that are not 
        known statically

Как передать объект, который я извлек из других веб-сервисов или сгенерировал из моих сериализуемых классов, в свойстве M_ResultObject?

KR

Ответы [ 2 ]

2 голосов
/ 27 июля 2010

Мой менеджер разработчик решил эту проблему и хочу поделиться с вами. Мы должны поставить

[XmlInclude(typeof(...))]

на веб-службе .asmx и обновите ссылку на веб-службу со стороны клиента.

KR

1 голос
/ 26 июля 2010

Вы пытались пометить свойство M_ResultObject с помощью XmlInclude / SoapInclude, поскольку сообщение об ошибке намекает на?

[XmlInclude(typeof(...))]
public object M_ResultObject { get; set; }

Вы должны сообщить соответствующему сериализатору, какие возможные типы для M_ResultObject.Вы можете указать несколько атрибутов, если есть несколько различных объектов, которые могут быть возвращены.

...