ASMX Web服务返回Xml节点而不是自定义对象

时间:2011-12-21 12:29:22

标签: asp.net object serialization asmx xmlnode

以下是网络服务:

自定义类:

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();

那么,为什么webservice返回XmlNode列表而不是A类?怎么解决?

PS:如果我评论public A prop { get; set; }行,则可行

1 个答案:

答案 0 :(得分:1)

好的,找到了解决方案:

我可以使用包装器,如下所示:

或者我使用[return:]属性,如下所示:

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

    return a;
}

关于属性目标: