CacheItemPolicy Class

.NET Framework (current version)
 

Represents a set of eviction and expiration details for a specific cache entry.

Namespace:   System.Runtime.Caching
Assembly:  System.Runtime.Caching (in System.Runtime.Caching.dll)

System::Object
  System.Runtime.Caching::CacheItemPolicy

public ref class CacheItemPolicy 

NameDescription
System_CAPS_pubmethodCacheItemPolicy()

Initializes a new instance of the CacheItemPolicy class.

NameDescription
System_CAPS_pubpropertyAbsoluteExpiration

Gets or sets a value that indicates whether a cache entry should be evicted after a specified duration.

System_CAPS_pubpropertyChangeMonitors

Gets a collection of ChangeMonitor objects that are associated with a cache entry.

System_CAPS_pubpropertyPriority

Gets or sets a priority setting that is used to determine whether to evict a cache entry.

System_CAPS_pubpropertyRemovedCallback

Gets or sets a reference to a CacheEntryRemovedCallback delegate that is called after an entry is removed from the cache.

System_CAPS_pubpropertySlidingExpiration

Gets or sets a value that indicates whether a cache entry should be evicted if it has not been accessed in a given span of time.

System_CAPS_pubpropertyUpdateCallback

Gets or sets a reference to a CacheEntryUpdateCallback delegate that is called before a cache entry is removed from the cache.

NameDescription
System_CAPS_pubmethodEquals(Object^)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

A CacheItemPolicy instance contains information that can be associated with a cache entry. For example, when a cache entry is about to be removed from the cache, a CacheEntryUpdateArguments object is passed to a callback method. The UpdatedCacheItemPolicy property of the CacheEntryUpdateArguments object can pass a reference to a CacheItemPolicy instance that can include eviction and expiration details about the cache entry.

Some methods in the MemoryCache and ObjectCache classes accept a CacheItemPolicy instance to describe eviction or expiration policy.

Notes to Implementers:

The CacheItemPolicy type is unsealed so that custom cache developers can extend it.

The following example shows how to create an in-memory cache item that monitors the path for a text file. The cache creates a CacheItemPolicy object and sets the AbsoluteExpiration property to evict the cache after 60 seconds.

[Visual Basic]

Protected Sub Button1_Click(ByVal sender As Object, _
            ByVal e As System.EventArgs) Handles Button1.Click
    Dim cache As ObjectCache = MemoryCache.Default
    Dim fileContents As String = TryCast(cache("filecontents"), _
            String)
    If fileContents Is Nothing Then
        Dim policy As New CacheItemPolicy()
        policy.AbsoluteExpiration = _
            DateTimeOffset.Now.AddSeconds(60.0)
        Dim filePaths As New List(Of String)()
     Dim cachedFilePath As String = Server.MapPath("~") & _
         "\cacheText.txt"
        filePaths.Add(cachedFilePath)
        policy.ChangeMonitors.Add(New _
            HostFileChangeMonitor(filePaths))

        ' Fetch the file contents.
        fileContents = File.ReadAllText(cachedFilePath)
        cache.Set("filecontents", fileContents, policy)
    End If
    Label1.Text = fileContents
End Sub

[C#]

protected void Button1_Click(object sender, EventArgs e)
    {
        ObjectCache cache = MemoryCache.Default;
            string fileContents = cache["filecontents"] as string;
            if (fileContents == null)
            {
                CacheItemPolicy policy = new CacheItemPolicy();
                policy.AbsoluteExpiration = 
                    DateTimeOffset.Now.AddSeconds(60.0);

                List<string> filePaths = new List<string>();
             string cachedFilePath = Server.MapPath("~") + 
                 "\\cacheText.txt";
             filePaths.Add(cachedFilePath);


                policy.ChangeMonitors.Add(new 
                    HostFileChangeMonitor(filePaths));

                // Fetch the file contents.
                fileContents = File.ReadAllText(cachedFilePath);

                cache.Set("filecontents", fileContents, policy);

            }

            Label1.Text = fileContents;
        }

.NET Framework
Available since 4.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: