0

ここにウェブサービスがあります:

カスタム クラス:

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

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

ウェブ方法:

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

では、なぜ Web サービスはクラス A ではなく XmlNode リストを返すのでしょうか? それを解決する方法は?

public A prop { get; set; }PS:行にコメントすると動作します

4

1 に答える 1

1

わかりました、解決策を見つけました:

次のようにラッパーを使用できます。

または、次のように [return:] 属性を使用します。

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

    return a;
}

属性ターゲットについて:

于 2012-07-18T01:04:55.470 に答える