私はこれらのクラスを持っています:
[DataContract]
public class ErrorBase {}
[DataContract]
public class FileMissingError: ErrorBase {}
[DataContract]
public class ResponseFileInquiry
{
[DataMember]
public List<ErrorBase> errors {get;set;};
}
クラスResponseFileInquiryのインスタンスは、私のサービスメソッドがクライアントに返すものです。ここで、ResponseFileInquiry.errorsにErrorBaseのインスタンスを入力すると、すべて正常に機能しますが、継承されたタイプFileMissingErrorのインスタンスを追加すると、シリアル化中にサービス側の例外が発生します。
Type 'MyNamespace.FileMissingError' with data contract name 'FileMissingError'
is not expected. Add any types not known statically to the list of known types -
for example, by using the KnownTypeAttribute attribute or by adding them to the
list of known types passed to DataContractSerializer.'
そのため、シリアライザーは、リストに宣言された型オブジェクト(ErrorBase)が含まれていることを期待しているが、継承された型(FileMissingError)オブジェクトを取得しているために混乱しています。
たくさんのエラータイプがあり、リストにはそれらの組み合わせが含まれているので、それを機能させるために何ができますか?