AggregateCacheDependency Classe

Definição

Combina múltiplas dependências entre um item armazenado no objeto Cache de uma aplicação ASP.NET e um array de objetos CacheDependency. Esta classe não pode ser herdada.

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
Herança
AggregateCacheDependency

Exemplos

O exemplo de código seguinte usa a AggregateCacheDependency classe para adicionar um DataSet, nomeado XMLDataSet, à cache que depende de um ficheiro de texto e de um ficheiro 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

Observações

A AggregateCacheDependency classe monitoriza uma coleção de objetos de dependência para que, quando algum deles mude, o item em cache seja automaticamente removido. Os objetos no array podem ser CacheDependency objetos, SqlCacheDependency objetos, objetos personalizados derivados de CacheDependency, ou qualquer combinação destes.

A AggregateCacheDependency classe difere da CacheDependency classe por permitir associar múltiplas dependências de diferentes tipos a um único item em cache. Por exemplo, se criares uma página que importa dados de uma tabela de base de dados SQL Server e de um ficheiro XML, podes criar um objeto SqlCacheDependency para representar uma dependência na tabela da base de dados e um CacheDependency para representar a dependência do ficheiro XML. Em vez de fazer uma Cache.Insert chamada de método para cada dependência, pode criar uma instância da AggregateCacheDependency classe com cada dependência adicionada. Pode então usar uma única Insert chamada para tornar a página dependente da AggregateCacheDependency instância.

Construtores

Name Description
AggregateCacheDependency()

Inicializa uma nova instância da AggregateCacheDependency classe.

Propriedades

Name Description
HasChanged

Recebe um valor que indica se o CacheDependency objeto mudou.

(Herdado de CacheDependency)
UtcLastModified

Obtém a hora em que a dependência foi alterada pela última vez.

(Herdado de CacheDependency)

Métodos

Name Description
Add(CacheDependency[])

Adiciona um array de CacheDependency objetos ao AggregateCacheDependency objeto.

DependencyDispose()

Liberta os recursos usados pela CacheDependency classe e quaisquer classes que derivem de CacheDependency.

(Herdado de CacheDependency)
Dispose()

Liberta os recursos usados pelo CacheDependency objeto.

(Herdado de CacheDependency)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FinishInit()

Completa a inicialização do CacheDependency objeto.

(Herdado de CacheDependency)
GetFileDependencies()

Obtém as dependências dos ficheiros.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUniqueID()

Recupera um identificador único para o AggregateCacheDependency objeto.

ItemRemoved()

Chamada quando uma entrada de cache monitorizada é removida.

(Herdado de CacheDependency)
KeepDependenciesAlive()

Atualiza o último tempo de acesso de cada item de cache que depende desse item.

(Herdado de CacheDependency)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
NotifyDependencyChanged(Object, EventArgs)

Notifica o objeto base CacheDependency que a dependência representada por uma classe derivada CacheDependency mudou.

(Herdado de CacheDependency)
SetCacheDependencyChanged(Action<Object,EventArgs>)

Adiciona um método Action para lidar com a notificação das partes interessadas sobre alterações a esta dependência.

(Herdado de CacheDependency)
SetUtcLastModified(DateTime)

Marca o momento em que uma dependência mudou pela última vez.

(Herdado de CacheDependency)
TakeOwnership()

Permite ao primeiro utilizador declarar a propriedade exclusiva desta dependência.

(Herdado de CacheDependency)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a