>json.net中的“自我引用循環檢測到的錯誤”(實體數據模型對象)
>使用JsonConvert.SerializeObject
>序列化源自實體數據模型(.EDMX)的普通舊CLR對象(POCO)時,您可能會遇到“檢測到的自我引用環”錯誤。本指南提供解決方案。
利用JsonSerializerSettings
JsonSerializerSettings
類提供對序列化行為的顆粒狀控制,包括循環處理。 默認值ReferenceLoopHandling.Error
在遇到圓形參考時會引發異常。 要解決此問題,請調整ReferenceLoopHandling
設置。
ReferenceLoopHandling.Serialize
:這通常是最佳選擇。它在防止無限遞歸的同時序列化對象。
ReferenceLoopHandling.Ignore
:這種方法跳過了遞歸引用的對象的序列化。
ReferenceLoopHandling.Preserve
:即使使用圓形引用也嘗試序列化,但是如果嵌套無限深。
StackOverflowException
>用PoCo實例替換
JsonConvert.SerializeObject( yourPocoObject, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Serialize } );
在JSON序列化期間有效地管理循環引用。 yourPocoObject
>
以上是在使用JSON.NET序列化實體框架對象時,如何修復'自我引用循環檢測到的”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!