HttpResponse.AddCacheItemDependency(String) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A gyorsítótárazott válasz érvényességét a gyorsítótár egy másik elemétől teszi függővé.
public:
void AddCacheItemDependency(System::String ^ cacheKey);
public void AddCacheItemDependency(string cacheKey);
member this.AddCacheItemDependency : string -> unit
Public Sub AddCacheItemDependency (cacheKey As String)
Paraméterek
- cacheKey
- String
Annak az elemnek a kulcsa, amelytől a gyorsítótárazott válasz függ.
Példák
Az alábbi példa egy ASP.NET gyorsítótárazott kimeneti felhasználói vezérlő. A vezérlő kódja meghívja a AddCacheItemDependency metódust az objektumban Cache paraméterként átadott elem kulcsával. Ha az elem nem létezik a gyorsítótárban, a vezérlő kimeneti gyorsítótárban tárolt válasza érvénytelen lesz. Ez azt jelenti, hogy a következő kérelemben a vezérlő válaszának egy új verziója lesz hozzáadva a kimeneti gyorsítótárhoz.
Ezután a kód ellenőrzi, hogy a kulcshoz bookData társított elem az objektumban Cache van-e tárolva, és megjeleníti az eredménytől függő két sor egyikét. Ezután a kód beállítja egy DataSourceDataGrid vezérlőelem tulajdonságát, amely neve egy egyéni dgBooks osztály megosztott DataHelper metódusának hívásával van elnevezveGetBookData, és feltölti a DataGridDataBind metódussal.
<%@ 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>
Megjegyzések
Ha a paraméternek cacheKey megfelelő elemet eltávolítják a gyorsítótárból, az aktuális elem gyorsítótárazott válasza érvénytelen.