希望這是一個簡單的解決方案,我忽略了。我已經傳遞到了我想要序列使用JSON.NET該對象,像這樣的事件處理程序的對象:使用Stream類型成員的對象上的JSON.NET序列化?
public void OnEvent(IEventObject foo)
{
// Serialize foo to string/disk here?
var data = JsonConvert.SerializeObject(foo, Formatting.Indented);
}
看來,一個或多個Foo的成員是流。我已經認識到Streams不是可序列化的,因爲它們是對數據的抽象而不是數據本身。這是有道理的。
我不知道如何通過兩種反正序列化此對象:
- 一)流轉換成數據和序列化
- B)忽略流和序列化的其餘成員
對此的一個重要警告是我無法訪問IEventObject或其實現,所以我無法用屬性標記標記任何這些對象。
我想出的唯一解決方案是將這個對象封裝在我自己的類中,適當標記並序列化。後來,我將反序列化回我自己的類,並將其轉換爲原始對象。我不喜歡這種方法,因爲它涉及一個額外的對象和轉換步驟,並且如果可能的話,希望避免它。
我面對的是相同的問題,別無選擇,只能將其包裝在我的完全可序列化的對象中。如果還有其他選擇,我會很高興聽到它:-) –
@Bartdude你可以看看我的答案。 –
@TimS。不幸的是,在我的情況下,我最終不得不實現包裝器對象,因爲我沒有本地訪問要反序列化的具體類型。否則,接受的答案是解決這個問題的好辦法。 – jmsb