2010-07-01 32 views

回答

3

編譯器生成的enumerable沒有應用[Serializable]屬性,所以,不,開箱即用,你不能這樣做。

你應該問自己:「爲什麼我在這裏使用產量,一旦這個對象被反序列化,它意味着什麼?」

如果方便,您可以使用它來填充可序列化的類型。如果你用它懶散地執行一些繁重的工作,你可能需要考慮改變你的設計以序列化或反序列化你需要執行的繁重工作。

+2

這其實並不完全正確。我曾經認爲你不能,但你可以使用代理序列化到有趣的效果,同時仍然保留相當通用的代碼。查看示例代碼:http://dotnet.agilekiwi.com/blog/2007/05/implementing-workflow-with-persistent.html – 2012-05-29 00:15:46

0

只需迭代枚舉器並序列化每個返回的實例即可。

3

您使用哪個課程實施IEnumerable<T>List<T>應該序列化好。

嘗試在序列化之前在您的集合上調用ToList()

+0

+1簡單的解決方案。 – Tyrsius 2012-08-20 23:23:24