[DataContract]クラスの1つにListである[DataMember]が含まれています。 BaseClassにはいくつかの異なるサブクラスがあります。WCF - サブクラスを[DataMember]リストに追加<BaseClass>例外を発生させます
このリストにサブクラスのインスタンスが含まれている場合は、サービスが要求チャネルに戻る間に例外が発生します。リストにサブクラスが含まれていない場合は、正常に動作します。ここで
は(これ自体は動作しません)私のコードの例です。
public class BaseClass
{
}
public class BaseClassSub : BaseClass
{
}
[DataContract]
public class MyClass
{
List<BaseClass> m_Classes = new List<BaseClass>();
[DataMember]
public List<BaseClass> Classes
{
get { return m_Classes; }
set { m_Classes = value; }
}
}
[ServiceContract]
public interface IMyService
{
[OperationContract]
MyClass GetMyClass();
}
public class MyService : IMyService
{
public MyClass GetMyClass()
{
MyClass o = new MyClass();
//THIS WORKS!!!!
//o.Classes = new List<BaseClass>() { new BaseClass() };
//THIS DOES NOT WORK!!!!
o.Classes = new List<BaseClass>() { new BaseClassSub() };
return o;
}
}
デバッグするとき、私は次のエラーを取得する:
をソケット接続が中断されました。これは、メッセージの処理中にエラーが発生したか、リモートホストが受信タイムアウトを超過したか、基になるネットワークリソースの問題が原因で発生している可能性があります。ローカルソケットタイムアウトは'00:00:59.6560000 'でした。
誰でもこの問題を解決する方法を知っています(サブクラスを処理する方法)。
例外について私たちに推測させてください。全体の例外を投稿してください。それをキャッチし、ex.ToString()を投稿してください。 –