2012-05-04 103 views
0

我需要在會話狀態中存儲日期。在會話中存儲日期時間

在我的開發版本中,我使用InProc會話,所以當然,我只是將會話中的值作爲日期時間類型存儲,並且它可以工作。當我計劃發佈應用程序時,我將首先升級到SQL服務器會話,然後最終在Azure中部署應用程序,並使用AppFabric存儲會話狀態。

我的問題是這樣的:我可以保持會話原樣,還是我需要將日期存儲爲一個字符串與ToString()來設置和解析以獲取值?

謝謝。

+0

您不必這樣做。我很好奇,你爲什麼要把它作爲一個字符串存儲? – jacqijvv

+0

出於某種原因,我認爲除了InProc以外的會話模式以鍵/值方式工作,字符串作爲唯一可接受的日期類型。 – frenchie

+0

會話存儲在鍵/值對中,但值爲Object類型。這是ASP.NET會話上的MSDN鏈接http://msdn.microsoft.com/en-us/library/ms178581.aspx – jacqijvv

回答

4

如果在InProc會話狀態模式下使用外部數據存儲和任何對象,則可以在會話中存儲所有原始.NET類型或可序列化類型。所以在你的情況下,你不必轉換爲字符串,你可以將它存儲爲DateTime對象。

1

在SqlServer模式下,對象需要被序列化。當然,您可以使用DateTime對象,但複雜類型需要serializable屬性:

[Serializable] 
public class ComplexClass 
{ 
    public DateTime MyDate { get; set; } 
    ... 
} 
+0

序列化是否自動處理? – frenchie

+0

是的。您只需將類標記爲可序列化。 –