HttpResponse.AddCacheItemDependency(String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rende la validità di una risposta memorizzata nella cache dipendente da un altro elemento della cache.
public:
void AddCacheItemDependency(System::String ^ cacheKey);
public void AddCacheItemDependency (string cacheKey);
member this.AddCacheItemDependency : string -> unit
Public Sub AddCacheItemDependency (cacheKey As String)
Parametri
- cacheKey
- String
Chiave dell'elemento da cui dipende la risposta memorizzata nella cache.
Esempio
L'esempio seguente è un controllo ASP.NET utente memorizzato nella cache. Il codice per il controllo chiama il AddCacheItemDependency metodo con la chiave di un elemento archiviato nell'oggetto Cache passato come parametro. Se l'elemento non esiste nella cache, la risposta del controllo archiviata nella cache di output viene invalidata. Ciò significa che nella richiesta successiva verrà aggiunta una nuova versione della risposta del controllo alla cache di output.
Successivamente, il codice controlla se un elemento associato a una bookData
chiave è archiviato nell'oggetto Cache
e visualizza una delle due righe di testo dipendenti dal risultato. Il codice imposta quindi la DataSource proprietà di un DataGrid controllo, denominato dgBooks
, con una chiamata al metodo condiviso GetBookData
di una classe personalizzata DataHelper
e popola con DataGrid il DataBind metodo .
<%@ Control Language="c#" %>
<%@ Outputcache duration="10" varybyparam="none" shared="True" %>
<%@ Import Namespace = "Samples.AspNet.CS" %>
<%@ Import Namespace = "System.Data" %>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Make user control invalid if the
// cache item changes or expires.
Response.AddCacheItemDependency("bookData");
// Create a DataView object.
DataView source = (DataView)Cache["bookData"];
// Check if the view is stored in the cache
// and generate the right label text
// dependent upon what is returned.
if (source == null)
{
source = DataHelper.GetBookData();
lblCacheMsg.Text = "Data generated explicitly.";
}
else
{
lblCacheMsg.Text = "Data retrieved from application cache.";
}
dgBooks.DataSource = source;
dgBooks.DataBind();
lblOutputMessage.Text = DateTime.Now.ToString();
}
</script>
<table>
<tbody>
<tr>
<th>
Books</th>
<td>
</td>
</tr>
<tr>
<td>
<asp:DataGrid id="dgBooks" runat="server"></asp:DataGrid>
</td>
<td>
</td>
</tr>
<tr>
<td>
<asp:Label id="lblCacheMsg" runat="server"></asp:Label>
</td>
<td>
</td>
</tr>
<tr>
<td>
The control was created at:
</td>
<td>
<asp:Label id="lblOutputMessage" runat="server"></asp:Label>
</td>
</tr>
</tbody>
</table>
<%@ Control Language="vb" %>
<%@ Outputcache duration="10" varybyparam="none" shared="True" %>
<%@ Import Namespace="Samples.AspNet.VB" %>
<%@ Import Namespace="System.Data" %>
<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Make user control invalid if the
' cache item changes or expires.
Response.AddCacheItemDependency("bookData")
' Create a DataView object.
Dim source As DataView = Cache("bookData")
' Check if the view is stored in the cache
' and generate the right label text
' dependent upon what is returned.
If source Is Nothing Then
source = DataHelper.GetBookData()
lblCacheMsg.Text = "Data generated explicitly."
Else
lblCacheMsg.Text = "Data retrieved from application cache."
End If
dgBooks.DataSource = source
dgBooks.DataBind()
lblOutputMessage.Text = DateTime.Now.ToString()
End Sub
</script>
<table>
<tbody>
<tr>
<th>
Books</th>
<td>
</td>
</tr>
<tr>
<td>
<asp:DataGrid id="dgBooks" runat="server"></asp:DataGrid>
</td>
<td>
</td>
</tr>
<tr>
<td>
<asp:Label id="lblCacheMsg" runat="server"></asp:Label>
</td>
<td>
</td>
</tr>
<tr>
<td>
The control was created at:
</td>
<td>
<asp:Label id="lblOutputMessage" runat="server"></asp:Label>
</td>
</tr>
</tbody>
</table>
Commenti
Quando l'elemento corrispondente al cacheKey
parametro viene rimosso dalla cache, la risposta memorizzata nella cache dell'elemento corrente non è valida.