AggregateCacheDependency Класс

Определение

Объединяет несколько зависимостей между элементом, хранящимся в объекте Cache приложения ASP.NET, и массивом объектов CacheDependency.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
Наследование
AggregateCacheDependency

Примеры

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

Комментарии

AggregateCacheDependency Класс отслеживает коллекцию объектов зависимостей, чтобы при каждом изменении кэшированный элемент был автоматически удален.The AggregateCacheDependency class monitors a collection of dependency objects so that when any of them change, the cached item is automatically removed. Объекты в массиве могут быть CacheDependency объектами, SqlCacheDependency объектами, пользовательскими объектами, производными CacheDependencyот, или любым сочетанием этих объектов.The objects in the array can be CacheDependency objects, SqlCacheDependency objects, custom objects derived from CacheDependency, or any combination of these.

Класс отличается от класса тем CacheDependency , что он позволяет связать несколько зависимостей разных типов с одним кэшированным элементом. AggregateCacheDependencyThe AggregateCacheDependency class differs from the CacheDependency class in that it allows you to associate multiple dependencies of different types with a single cached item. Например, при создании страницы, которая импортирует данные из таблицы базы данных SQL Server и XML-файла, можно создать SqlCacheDependency объект для представления зависимости от таблицы базы данных CacheDependency и для представления зависимости от XML-файла.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. Вместо того чтобы AggregateCacheDependency вызывать методдлякаждойзависимости,можносоздатьэкземплярклассаскаждойзависимостью,добавленнойвнего.Cache.InsertRather 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. Затем можно использовать один Insert вызов, чтобы сделать страницу зависимой AggregateCacheDependency от экземпляра.You can then use a single Insert call to make the page dependent on the AggregateCacheDependency instance.

Конструкторы

AggregateCacheDependency()

Инициализирует новый экземпляр класса AggregateCacheDependency.Initializes a new instance of the AggregateCacheDependency class.

Свойства

HasChanged

Получает значение, указывающее, изменился ли объект CacheDependency.Gets a value indicating whether the CacheDependency object has changed.

(Унаследовано от CacheDependency)
UtcLastModified

Получает время последнего изменения зависимости.Gets the time when the dependency was last changed.

(Унаследовано от CacheDependency)

Методы

Add(CacheDependency[])

Добавляет массив объектов CacheDependency к объекту AggregateCacheDependency.Adds an array of CacheDependency objects to the AggregateCacheDependency object.

Dispose()

Освобождает ресурсы, используемые объектом CacheDependency.Releases the resources used by the CacheDependency object.

(Унаследовано от CacheDependency)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetFileDependencies()

Возвращает зависимости файлов.Gets the file dependencies.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
GetUniqueID()

Получает уникальный идентификатор объекта AggregateCacheDependency.Retrieves a unique identifier for the AggregateCacheDependency object.

ItemRemoved()

Вызывается при удалении отслеживаемой записи кэша.Called when a monitored cache entry is removed.

(Унаследовано от CacheDependency)
KeepDependenciesAlive()

Обновляет время последнего обращения к каждому элементу кэша, который зависит от этого элемента.Updates the last access time of every cache item that depends on this item.

(Унаследовано от CacheDependency)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
SetCacheDependencyChanged(Action<Object,EventArgs>)

Добавляет метод действия для обработки уведомления заинтересованной стороны об изменениях в этой зависимости.Adds an Action method to handle notifying interested party in changes to this dependency.

(Унаследовано от CacheDependency)
TakeOwnership()

Позволяет первому пользователю объявлять монопольный доступ к этой зависимости.Allows the first user to declare exclusive ownership of this dependency.

(Унаследовано от CacheDependency)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

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