2012-05-04 105 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

是的。您只需将类标记为可序列化。 –