字典从缓存返回为Null / Nothing

时间:2016-04-29 17:28:36

标签: vb.net caching dictionary nothing

我正在编写一些vb.net代码来从中间件中检索一些数据,用它做一些事情,然后将名称/值对的字典保存到缓存中,以便在需要时快速检索。

直到我从缓存中检索对象并且它始终为Null / Nothing之前,似乎一切顺利。

然而,在监视窗口中,我可以看到我的缓存对象,并且其中包含数据。

想想也许它是一个序列化问题我创建了一个继承Dictionary并被标记为可序列化的新类,但我仍然得到相同的结果。

所以现在我有这个课程:

<Serializable()> Public Class SerialDict
    Inherits Dictionary(Of String, String)

    Public Sub New()

    End Sub

End Class

我填充它并将其放入缓存中,如下所示:

 Dim Licenses As New SerialDict
                For Each r As DataRow In dtLicenses.Rows
                    Dim prikey As String = r("SettingID").ToString.Trim
                    Dim decryptionKey As String = GetHash((xx))

                    Dim licData As String = DecryptData(r("SettingVal"), decryptionKey)

                    Licenses.Add(r("SettingKey"), licData)
                Next

                If IsNothing(HttpContext.Current.Cache("Licenses")) Then
                    HttpContext.Current.Cache.Add("Licences", Licenses, Nothing, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, Nothing)
                End If

然后在其他地方我们需要检查数据,所以我尝试像这样检索它:

Dim Licences As SerialDict = CType(HttpContext.Current.Cache("Licenses"), SerialDict)

此时许可证始终为Nothing,但监视窗口显示HttpContext.Current.Cache中的数据(&#34;许可证&#34;)。

有什么建议吗?谢谢!

0 个答案:

没有答案