Aracılığıyla paylaş


HttpResponse.AddCacheItemDependency(String) Yöntem

Tanım

Ö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ı dgBooksdenetimin ö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.

Şunlara uygulanır

Ayrıca bkz.