沒有進入這是否是好還是壞主意:Linq是否可以序列化爲會話狀態的sql對象?
是否有可能存儲在ASP.NET會話,LINQ到SQL域對象在會話外的過程 ?
[編輯] 我目前收到以下錯誤,問這個問題,因爲我懷疑LINQ到SQL對象:
無法序列化會話狀態。在'StateServer'和'SQLServer'模式下,ASP.NET將序列化會話狀態對象,因此不允許使用不可序列化的對象或MarshalByRef對象。如果自定義會話狀態存儲在「自定義」模式下進行類似的序列化,則適用相同的限制。 [/編輯]
例如,
Session["Zoo"] = new Zoo() {
new Lion(),
new Tiger(),
new Elephant()
}
其中:
- 動物園,獅子,老虎,大象都配備一個ZooDataContext
和web.config文件中包含了
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="10"
sqlConnectionString="SqlStateConnectionString"
sqlCommandTimeout="30"
timeout="20"
regenerateExpiredSessionId="true"/>
謝謝你給我的想法。我曾假設如果這些類是可序列化的,那麼它們就是* serializable *,就像XmlSerializer會工作一樣。最後,我圍繞一個MemoryStream封裝了XmlTextWriter,然後使用DataContractSerializer將其串入到XmlTextWriter中。之後,內存流的byte []緩衝區可以被序列化並存儲在進程外。我真的不喜歡這個修補程序,但是我依靠某些依賴狀態而不是「重放」模式的else設計支持角落。 – 2009-10-29 22:50:43