string serializedContext = JsonConvert.SerializeObject(HttpContext.Current)
但我在這條線越來越例外。
通過類型'System.Web.HttpContext'檢測屬性'Context'的自回參考循環。路徑'ApplicationInstance'。
我想通過serailized上下文到Web服務。 爲什麼會檢測到自回參考迴路,可能有什麼辦法?
string serializedContext = JsonConvert.SerializeObject(HttpContext.Current)
但我在這條線越來越例外。
通過類型'System.Web.HttpContext'檢測屬性'Context'的自回參考循環。路徑'ApplicationInstance'。
我想通過serailized上下文到Web服務。 爲什麼會檢測到自回參考迴路,可能有什麼辦法?
你可以試試:
string serializedContext = JsonConvert.SerializeObject(HttpContext.Current, Formatting.Indented,
new JsonSerializerSettings {
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
的誤解:
序列化的背景和反序列化它的另一面是沒有語義意義:如果你把它發送到遠程Web服務它將擁有自己的http上下文。
解決該問題的 相反,你可能想要做的是:創建一個新的對象只需要在遠程Web服務使用數據。
不要認爲它是一個上下文,把它看作是一個數據傳輸對象,它包含了在另一邊完成工作所需的所有事情。
其他注意事項
你可能會認爲這是痛苦的主要創建包含相同的數據作爲您的HttpContext一個新的對象,但可以減輕通過複製一個對象的值,以其他的沉悶使用AutoMapper以便將值從一個對象複製到另一個對象,而無需自己編寫代碼(這是基於約定的)。
希望這會有所幫助。
你根本無法做到這一點......更重要的是,你將無法將其另一端水合成工作狀態......只發送必要的數據就是解決方案。 –
爲什麼你要序列化當前的HttpContext? –
這可能是一個X-Y問題。你試圖達到的最終目標是什麼? – Nkosi