ASMX WebService возвращает XmlNode вместо пользовательского объекта - PullRequest
0 голосов
/ 21 декабря 2011

Вот веб-сервис:

Пользовательские классы:

public class A
{
    public A()
    {
    }
    public B prop { get; set; } 
}

public class B
{
    public B()
    {
    }
    public A prop { get; set; }
}

WebMethod:

[WebMethod]
[XmlInclude(typeof(A))]
public object Test()
{
    A a = new A();
    a.prop = new B();

    return a;
}

Вот клиентская сторона:

Service ws = new Service();
var response = ws.Test();

Итак, почему веб-служба возвращает список XmlNode вместо класса A? Как это решить?

PS: если я прокомментирую public A prop { get; set; } строку, она будет работать

1 Ответ

1 голос
/ 18 июля 2012

ОК, нашел решение:

Я мог бы использовать обертку, как это:

Или я использую атрибут [return:], например:

[WebMethod]
[return: XmlElement(typeof(A))]
public object Test()
{
    A a = new A();
    a.prop = new B();

    return a;
}

О целевых атрибутах:

...