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 для добавления DataSetименованного XMLDataSetкэша в кэш, зависящий от текстового файла и 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() |
Возвращает зависимости файлов. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetUniqueID() |
Извлекает уникальный идентификатор объекта AggregateCacheDependency . |
| ItemRemoved() |
Вызывается при удалении отслеживаемой записи кэша. (Унаследовано от CacheDependency) |
| KeepDependenciesAlive() |
Обновляет время последнего доступа каждого элемента кэша, зависящее от этого элемента. (Унаследовано от CacheDependency) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| NotifyDependencyChanged(Object, EventArgs) |
Уведомляет базовый CacheDependency объект о том, что зависимость, представленная производным CacheDependency классом, изменилась. (Унаследовано от CacheDependency) |
| SetCacheDependencyChanged(Action<Object,EventArgs>) |
Добавляет метод Action для обработки уведомления заинтересованных лиц об изменениях этой зависимости. (Унаследовано от CacheDependency) |
| SetUtcLastModified(DateTime) |
Помечает время последнего изменения зависимости. (Унаследовано от CacheDependency) |
| TakeOwnership() |
Позволяет первому пользователю объявить монопольную собственность этой зависимости. (Унаследовано от CacheDependency) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |