1

メソッド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 を設定しましたが、この解決策も役に立ちません....

4

0 に答える 0