AggregateCacheDependency Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Объединяет несколько зависимостей между элементом, хранящимся в объекте Cache приложения ASP.NET, и массивом объектов CacheDependency. Этот класс не наследуется.
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
- Наследование
Примеры
В следующем примере кода класс используется AggregateCacheDependency для добавления именованного XMLDataSet
DataSetкласса в кэш, который зависит от текстового файла и XML-файла.
' 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
Комментарии
Класс AggregateCacheDependency отслеживает коллекцию объектов зависимостей, чтобы при изменении любого из них кэшированный элемент автоматически удаляется. Объекты в массиве могут быть CacheDependency объектами, SqlCacheDependency объектами, пользовательскими объектами, производными CacheDependencyот них или любым сочетанием этих объектов.
Класс AggregateCacheDependency отличается от CacheDependency класса в том, что он позволяет связать несколько зависимостей различных типов с одним кэшируемым элементом. Например, при создании страницы, которая импортирует данные из таблицы базы данных SQL Server и XML-файла, можно создать SqlCacheDependency объект для представления зависимости от таблицы базы данных и CacheDependency представления зависимости от XML-файла. Вместо того чтобы вызывать метод для каждой Cache.Insert AggregateCacheDependency зависимости, можно создать экземпляр класса с каждой зависимостью, добавленной в нее. Затем можно использовать один Insert вызов, чтобы сделать страницу зависящей от экземпляра AggregateCacheDependency .
Конструкторы
AggregateCacheDependency() |
Инициализирует новый экземпляр класса AggregateCacheDependency. |
Свойства
HasChanged |
Получает значение, указывающее, изменился ли объект CacheDependency. (Унаследовано от CacheDependency) |
UtcLastModified |
Получает время последнего изменения зависимости. (Унаследовано от CacheDependency) |
Методы
Add(CacheDependency[]) |
Добавляет массив объектов CacheDependency к объекту AggregateCacheDependency. |
DependencyDispose() |
Освобождает ресурсы, используемые классом CacheDependency и любыми классами, производными от CacheDependency. (Унаследовано от CacheDependency) |
Dispose() |
Освобождает ресурсы, используемые объектом CacheDependency. (Унаследовано от CacheDependency) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
FinishInit() |
Завершает инициализацию объекта CacheDependency. (Унаследовано от CacheDependency) |
GetFileDependencies() |
Возвращает зависимости файлов. |
GetFileDependencies() |
Возвращает зависимости файлов. (Унаследовано от CacheDependency) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
GetUniqueID() |
Возвращает уникальный идентификатор объекта AggregateCacheDependency. |
ItemRemoved() |
Вызывается при удалении отслеживаемой записи кэша. (Унаследовано от CacheDependency) |
KeepDependenciesAlive() |
Обновляет время последнего обращения к каждому элементу кэша, который зависит от этого элемента. (Унаследовано от CacheDependency) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
NotifyDependencyChanged(Object, EventArgs) |
Уведомляет базовый объект CacheDependency об изменении зависимости, представленной производным классом CacheDependency. (Унаследовано от CacheDependency) |
SetCacheDependencyChanged(Action<Object,EventArgs>) |
Добавляет метод действия для обработки уведомления заинтересованной стороны об изменениях в этой зависимости. (Унаследовано от CacheDependency) |
SetUtcLastModified(DateTime) |
Помечает время последнего изменения зависимости. (Унаследовано от CacheDependency) |
TakeOwnership() |
Позволяет первому пользователю объявлять монопольный доступ к этой зависимости. (Унаследовано от CacheDependency) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |