【问题标题】:storing datetime in session在会话中存储日期时间
【发布时间】:2012-05-05 03:53:25
【问题描述】:

我需要在会话状态中存储一个日期。

在我的开发版本中,我使用的是 InProc 会话,所以当然,我只是将会话中的值存储为日期时间类型并且它可以工作。当我计划发布应用程序时,我将首先升级到 SQL Server 会话,然后最终在 azure 中部署应用程序并使用 AppFabric 来存储会话状态。

我的问题是:我可以保持会话原样,还是需要将日期存储为字符串,并使用 ToString() 进行设置并进行解析以取回值?

谢谢。

【问题讨论】:

  • 您不必这样做。不过我很好奇,为什么要将它存储为字符串?
  • 出于某种原因,我认为 InProc 以外的会话模式以键/值方式工作,字符串作为唯一接受的日期类型。
  • 会话存储在键/值对中,但值是对象类型。这是 ASP.NET 会话上的 MSDN 链接msdn.microsoft.com/en-us/library/ms178581.aspx

标签: asp.net session azure


【解决方案1】:

如果您使用外部数据存储和 InProc 会话状态模式的任何对象,您可以在会话中存储所有原始 .NET 类型或可序列化类型。因此,在您的情况下,您不必转换为字符串,只需将其存储为 DateTime 对象即可。

【讨论】:

    【解决方案2】:

    在 SqlServer 模式的情况下,对象需要被序列化。当然可以使用 DateTime 对象,但是复杂类型需要serializable属性:

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

    【讨论】:

    • 序列化是否自动处理?
    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2012-03-15
    • 1970-01-01
    相关资源
    最近更新 更多