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

Примеры

В следующем примере кода класс используется AggregateCacheDependency для добавления именованного XMLDataSetDataSetкласса в кэш, который зависит от текстового файла и 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)

Применяется к