0

基本クラス A をいくつかの継承クラス A1、A2、A3 などで作成しました。

現在、WCF サービスを使用して、A1、A2、または A 型のオブジェクトを保持する List を返そうとしています。

WCF はこれをサポートしていますか? 接続が閉じられているというエラーが継続的に発生しています。

例えば。

class A{
//do something
}

class B:A{
//do something
}

class C:A{
//do something
}

WCF Service calling GetAll method which returns

public List<A> GetAll()
{
var obj= new List<A>();
obj.Add(new B());
obj.Add(new C());
return obj;
}

現在、WCF サービスには A に関する知識しかありませんが、B と C に関する知識はありません。どうすればこのオブジェクトを返すことができますか。おっと、これは有効ですが、サービスについてはわかりません

4

1 に答える 1

2

サービスによって公開されているクラスに KnownType 属性を追加することで、これを修正できました。

http://msdn.microsoft.com/en-us/library/ms730167.aspx

KnownType は実行時にシリアル化を解決します

[KnownType(typeof(B))]
[KnownType(typeof(C))]
class A{
//do something
}

class B:A{
//do something
}

class C:A{
//do something
}
于 2013-09-07T18:43:11.490 に答える