Friday, 2 March 2012

What are dependencies in cache and types of dependencies ?

When you add an item to the cache, you can define dependency relationships that can force that item to be removed from the cache under specific activities of dependencies. Example if the cache object is dependent on file and when the file data changes you want the cache object to be update. Following are the supported dependency :-

  • File dependency :- Allows you to invalidate a specific cache item when a disk based file or files change.

  • Time-based expiration :- Allows you to invalidate a specific cache item depending on predefined time.

  • Key dependency :-Allows you to invalidate a specific cache item depending when another cached item changes.


How can get access to cache object ?


The Cache object is defined in the System.Web.Caching namespace. You can get a reference to the Cache object by using the Cache property of the HttpContext class in the System.Web namespace or by using the Cache property of the Page object.

Can you show a simple code showing file dependency in cache ?


Partial Class Default_aspx


Public Sub displayAnnouncement()


Dim announcement As String
If Cache(“announcement”) Is Nothing Then


Dim file As New _
System.IO.StreamReader _
(Server.MapPath(“announcement.txt”))


announcement = file.ReadToEnd
file.Close()
Dim depends As New _


System.Web.Caching.CacheDependency _
(Server.MapPath(“announcement.txt”))


Cache.Insert(“announcement”, announcement, depends)


End If
Response.Write(CType(Cache(“announcement”), String))


End Sub


Private Sub Page_Init(ByVal sender As Object, ByVal e As


System.EventArgs) Handles Me.Init


displayAnnouncement()


End Sub


End Class


Above given method displayAnnouncement() displays banner text from Announcement.txt file which is lying in application path of the web directory. Above method first checks whether the Cache object is nothing, if the cache object is nothing then it moves further to load the cache data from the file. Whenever the file data changes the cache object is removed and set to nothing.

1 comment: