HttpResponse.AddCacheItemDependency(String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Önbelleğe alınmış yanıtın geçerliliğini önbellekteki başka bir öğeye bağımlı hale getirir.
public:
void AddCacheItemDependency(System::String ^ cacheKey);
public void AddCacheItemDependency (string cacheKey);
member this.AddCacheItemDependency : string -> unit
Public Sub AddCacheItemDependency (cacheKey As String)
Parametreler
- cacheKey
- String
Önbelleğe alınan yanıtın bağımlı olduğu öğenin anahtarı.
Örnekler
Aşağıdaki örnek, çıktı önbelleğe alınmış bir ASP.NET kullanıcı denetimidir. Denetimin kodu, parametresi olarak geçirilen nesnede Cache depolanan bir öğenin anahtarıyla yöntemini çağırırAddCacheItemDependency. Öğe önbellekte yoksa, denetimin çıkış önbelleğinde depolanan yanıtı geçersiz kılınır. Bu, sonraki istekte denetimin yanıtının yeni bir sürümünün çıkış önbelleğine eklendiği anlamına gelir.
Ardından kod, bir bookData
anahtarla ilişkilendirilmiş bir öğenin nesnede Cache
depolanıp depolanmadığını denetler ve sonuçtan bağımsız olarak iki metin satırlarından birini görüntüler. Ardından kod, özel sınıfın DataGrid paylaşılan GetBookData
yöntemine yapılan bir çağrı ile adlı dgBooks
denetimin özelliğini ayarlar DataSource ve yöntemini ile DataBind doldururDataGrid.DataHelper
<%@ 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>
Açıklamalar
Parametreye cacheKey
karşılık gelen öğe önbellekten kaldırıldığında, geçerli öğenin önbelleğe alınmış yanıtı geçersizdir.