私はお互いを参照するいくつかのBusinessObjectクラスを持っています.JsonResponseでそれをシリアル化して私のビューに戻す必要があります。私は循環参照例外を取得し続け、私はそれを取り除くことはできません。単純なデータ型プロパティではないすべてのプロパティに[ScriptIgnore()]
デコレータを配置しましたが、まだ例外が発生しています。私はシリアライザをほぼすべてからブロックしているので、問題がどこにあるのか把握することはできません。それはまだ私にとって爆発的です。円参照とScriptIgnoreの問題
シリアル化されたオブジェクトの現在の状態を確認する方法はありますか?
[HttpPost]
public JsonResult GetAnalysisInfo(int id)
{
ProjectContext myDB = db;
SearchAnalysis searchanalysis = SearchAnalysis.Find(myDB, id);
//searchanalysis.Results = searchanalysis.SearchResultsPrototype(myDB);
return this.Json(searchanalysis);
}
更新
私も無駄にISerializableを実装しようとしています。私のGetObjectDataは非常に簡単です:
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("SearchAnalysisId", this.SearchAnalysisId);
info.AddValue("Created", this.Created);
}
まだCircularRefernceエラーが発生しています。 DateTimeデータ型は直列化の権利に問題はありませんか?
私のクラスはEntity Frameworkエンティティです。いくつかの単純な永続プロパティ、マッピングされていないプロパティ、および静的メソッドとインスタンスメソッドが数多くあります。クラスの定義はここで投稿するには時間がかかりすぎます。 Jsonオブジェクトは実際にコントローラアクションのリターンラインにあり、上に投稿しました。 – CodeWarrior
興味深いことに、ISerializable(および失敗)を実装しようとした後、私は[Serializable]属性デコレータを追加しました。私が特にシリアライズしているプロパティは、シリアライズされたオブジェクトに終わるものではありませんが、ISerializableを削除すると失敗します。[シリアル化可能]を削除すると失敗します。 – CodeWarrior
私のエンティティが別のクラスライブラリに分割され、Webプロジェクトのコントローラからエンティティをシリアル化しようとしているのと同じ問題が発生しています – bflemi3