2010-06-14 31 views
0

我遇到了一個問題,我的SQL實例存儲附加到正在運行的WorkflowApplication。當我退出我的應用程序時,我在WF應用程序上調用Unload()來堅持它。我在設計時沒有考慮它,但它確實有意義,它堅持一個在實例化時傳遞給WorkflowApplication構造函數的參數。明確堅持工作流4.0中的狀態而不是全部

當應用程序運行時,工作流中的所有內容都按預期工作。當我呼叫Unload()時,我得到一個未處理的異常,該異常聲明arg不可序列化並且需要[DataContractAttribute]

傳入工作流的是我編寫的應用程序自定義記錄器對象,以便WF可以以我喜歡的統一方式登錄到磁盤。如何阻止工作流應用程序堅持這一個參數並堅持一切?

我確定可以使用擴展完成某些操作,但我很難在其上查找信息或查找我的方案的持久性示例。

回答

1

您可以用[NonSerialized]屬性來裝飾變量以不被序列化。

這應該可以做到,它適用於我的WF3.5應用程序。請參閱http://msdn.microsoft.com/en-us/library/ms973893.aspx,標題「選擇性序列化」

+0

好吧,我錯誤地應用了屬性。在我的Logger類中,我使用[Serializable]對其進行了修飾(即使我不喜歡該實現,因爲它不應該被序列化),然後使用[NonSerialized]標記實例化的Logger對象。現在持續忽略記錄器對象。謝謝Joon! – jlafay 2010-06-14 20:57:03