Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Macht die Gültigkeit einer zwischengespeicherten Antwort abhängig von einem weiteren Element im Cache.
Namespace: System.Web
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public Sub AddCacheItemDependency ( _
cacheKey As String _
)
'Usage
Dim instance As HttpResponse
Dim cacheKey As String
instance.AddCacheItemDependency(cacheKey)
public void AddCacheItemDependency (
string cacheKey
)
public:
void AddCacheItemDependency (
String^ cacheKey
)
public void AddCacheItemDependency (
String cacheKey
)
public function AddCacheItemDependency (
cacheKey : String
)
Parameter
- cacheKey
Der Schlüssel des Elements, von dem die zwischengespeicherte Antwort abhängt.
Hinweise
Wenn das Element, das cacheKey entspricht, aus dem Cache entfernt wird, ist die zwischengespeicherte Antwort des aktuellen Elements ungültig.
Beispiel
Beim folgenden Codebeispiel handelt es sich um ein ASP.NET-Benutzersteuerelement im Ausgabecache. Der Code für das Steuerelement ruft die AddCacheItemDependency-Methode mit dem Schlüssel eines Elements auf, das im Cache-Objekt gespeichert ist, das als sein Parameter übergeben wird. Wenn das Element im Cache nicht vorhanden ist, wird die Antwort des im Ausgabecache gespeicherten Steuerelements für ungültig erklärt. Das heißt, dass bei der folgenden Anforderung dem Ausgabecache eine neue Version der Antwort des Steuerelements hinzugefügt wird.
Anschließend prüft der Code, ob ein einem bookData-Schlüssel zugeordnetes Element im Cacheobjekt gespeichert ist, worauf in Abhängigkeit vom Ergebnis eine von zwei Textzeilen angezeigt wird. Anschließend legt der Code die DataSource-Eigenschaft eines DataGrid-Steuerelements mit dem Namen dgBooks mit einem Aufruf einer benutzerdefinierten, gemeinsam genutzten GetBookData-Methode der DataHelper-Klasse fest und füllt das DataGrid mithilfe der DataBind-Methode auf.
<%@ 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>
<%@ 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="VJ#" %>
<%@ Outputcache duration="10" varybyparam="none" shared="True" %>
<%@ Import Namespace = "Samples.AspNet.JSL" %>
<%@ 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.
get_Response().AddCacheItemDependency("bookData");
// Create a DataView object.
DataView source = (System.Data.DataView)(get_Cache()
.get_Item("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.set_Text("Data generated explicitly.");
}
else {
lblCacheMsg.set_Text("Data retrieved from application cache.");
}
dgBooks.set_DataSource(source);
dgBooks.DataBind();
lblOutputMessage.set_Text(DateTime.get_Now().ToString());
} //Page_Load
</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>
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
HttpResponse-Klasse
HttpResponse-Member
System.Web-Namespace
AddCacheItemDependency