メソッドSave(A a)を呼び出すと、アプリは例外で失敗します。
{"メッセージのデシリアライズ中にフォーマッタが例外をスローしました: パラメータのデシリアライズ エラーhttp://tempuri.org/:infs . InnerException メッセージは \" タイプ コレクション Api.BrainDictionary.Editor.DataTrasferObjects、バージョン = 1.0.0.0、カルチャ= ニュートラル、PublicKeyToken = null]] \ "、戻りのみを目的としており、null を返します。入力ストリームには、インスタンスの値が null の場合に追加できないコレクションの要素が含まれています。メソッドでコレクションを初期化してみてくださいgetter.\ ". 詳細については、InnerException を参照してください。"}
しかし、私のコレクション「IFNLs」は読み取り専用ではありません
[DataContract]
public class A
{
[DataMember]
public List<B> GVs{get; set ;}
[DataMember]
public List<C> SREs{get;set;}
[DataMember]
public List<D> TEs{get;set;}
[DataMember]
public List<E> INFLs{get;set;}
}
[DataContract]
public class E
{
[DataMember]
public long Id {get;set;}
[DataMember]
public string Description{get;set;}
}
1. プロパティ「Infls」が空ですが、null ではない場合、このバグは発生しません。その他のプロパティは空ではありません。2. プロパティ「Infls」が空ではありません。その他のプロパティは空です。
クラス B、C、D、Eは互いに参照しません。おそらく、拘束力のある引用は限られていると思います。しかし、拘束力のある引用符を増やしても役に立ちません。DataContractSerializerOperationBehaviour に追加し、maxItemsInObjectGraph を設定しましたが、この解決策も役に立ちません....