AggregateCacheDependency Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Combines multiple dependencies between an item stored in an ASP.NET application's Cache object and an array of CacheDependency objects. This class cannot be inherited.
public ref class AggregateCacheDependency sealed : System::Web::Caching::CacheDependency
public sealed class AggregateCacheDependency : System.Web.Caching.CacheDependency
type AggregateCacheDependency = class
inherit CacheDependency
Public NotInheritable Class AggregateCacheDependency
Inherits CacheDependency
- Inheritance
Examples
The following code example uses the AggregateCacheDependency class to add a DataSet, named XMLDataSet
, to the cache that is dependent on a text file and an XML file.
' When the page is loaded, use the
' AggregateCacheDependency class to make
' a cached item dependent on two files.
Sub Page_Load(sender As Object, e As EventArgs)
Dim Source As DataView
Source = Cache("XMLDataSet")
If Source Is Nothing
Dim DS As New DataSet
Dim FS As FileStream
Dim Reader As StreamReader
Dim txtDep As CacheDependency
Dim xmlDep As CacheDependency
Dim aggDep As AggregateCacheDependency
FS = New FileStream(Server.MapPath("authors.xml"),FileMode.Open,FileAccess.Read)
Reader = New StreamReader(FS)
DS.ReadXml(Reader)
FS.Close()
Source = new DataView(ds.Tables(0))
' Create two CacheDependency objects, one to a
' text file and the other to an XML file.
' Create a CacheDependency array with these
' two objects as items in the array.
txtDep = New CacheDependency(Server.MapPath("Storage.txt"))
xmlDep = New CacheDependency(Server.MapPath("authors.xml"))
Dim DepArray() As CacheDependency = {txtDep, xmlDep}
' Create an AggregateCacheDependency object and
' use the Add method to add the array to it.
aggDep = New AggregateCacheDependency()
aggDep.Add(DepArray)
' Call the GetUniqueId method to generate
' an ID for each dependency in the array.
msg1.Text = aggDep.GetUniqueId()
' Add the new data set to the cache with
' dependencies on both files in the array.
Cache.Insert("XMLDataSet", Source, aggDep)
If aggDep.HasChanged = True Then
chngMsg.Text = "The dependency changed at: " & DateTime.Now
Else
chngMsg.Text = "The dependency changed last at: " & aggDep.UtcLastModified.ToString()
End If
cacheMsg1.Text = "Dataset created explicitly"
Else
cacheMsg1.Text = "Dataset retrieved from cache"
End If
MyLiteral.Text = Source.Table.TableName
MyDataGrid.DataSource = Source
MyDataGrid.DataBind()
End Sub
Public Sub btn_Click(sender As Object, e As EventArgs )
If (MyTextBox.Text = String.Empty) Then
msg2.Text ="You have not changed the text file."
Else
msg2.Text="You added " & MyTextBox.Text & "."
' Create an instance of the StreamWriter class
' to write text to a file.
Dim sw As StreamWriter
sw = File.CreateText(Server.MapPath("Storage.txt"))
' Add some text to the file.
sw.Write("You entered:")
sw.WriteLine(MyTextBox.Text)
' Write arbitrary objects to the file as needed.
sw.Write("Text added at:")
sw.WriteLine(DateTime.Now)
sw.WriteLine("-------------------")
sw.Close()
End If
End Sub
Remarks
The AggregateCacheDependency class monitors a collection of dependency objects so that when any of them change, the cached item is automatically removed. The objects in the array can be CacheDependency objects, SqlCacheDependency objects, custom objects derived from CacheDependency, or any combination of these.
The AggregateCacheDependency class differs from the CacheDependency class in that it allows you to associate multiple dependencies of different types with a single cached item. For example, if you create a page that imports data from a SQL Server database table and an XML file, you can create a SqlCacheDependency object to represent a dependency on the database table and a CacheDependency to represent the dependency on the XML file. Rather than making an Cache.Insert method call for each dependency, you can create an instance of the AggregateCacheDependency class with each dependency added to it. You can then use a single Insert call to make the page dependent on the AggregateCacheDependency instance.
Constructors
AggregateCacheDependency() |
Initializes a new instance of the AggregateCacheDependency class. |
Properties
HasChanged |
Gets a value indicating whether the CacheDependency object has changed. (Inherited from CacheDependency) |
UtcLastModified |
Gets the time when the dependency was last changed. (Inherited from CacheDependency) |
Methods
Add(CacheDependency[]) |
Adds an array of CacheDependency objects to the AggregateCacheDependency object. |
DependencyDispose() |
Releases the resources used by the CacheDependency class and any classes that derive from CacheDependency. (Inherited from CacheDependency) |
Dispose() |
Releases the resources used by the CacheDependency object. (Inherited from CacheDependency) |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
FinishInit() |
Completes initialization of the CacheDependency object. (Inherited from CacheDependency) |
GetFileDependencies() |
Gets the file dependencies. |
GetFileDependencies() |
Gets the file dependencies. (Inherited from CacheDependency) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
GetUniqueID() |
Retrieves a unique identifier for the AggregateCacheDependency object. |
ItemRemoved() |
Called when a monitored cache entry is removed. (Inherited from CacheDependency) |
KeepDependenciesAlive() |
Updates the last access time of every cache item that depends on this item. (Inherited from CacheDependency) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
NotifyDependencyChanged(Object, EventArgs) |
Notifies the base CacheDependency object that the dependency represented by a derived CacheDependency class has changed. (Inherited from CacheDependency) |
SetCacheDependencyChanged(Action<Object,EventArgs>) |
Adds an Action method to handle notifying interested party in changes to this dependency. (Inherited from CacheDependency) |
SetUtcLastModified(DateTime) |
Marks the time when a dependency last changed. (Inherited from CacheDependency) |
TakeOwnership() |
Allows the first user to declare exclusive ownership of this dependency. (Inherited from CacheDependency) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |