HttpResponse.AddCacheItemDependency(String) Methode

Definitie

Hiermee wordt de geldigheid van een reactie in de cache afhankelijk van een ander item in de cache.

public:
 void AddCacheItemDependency(System::String ^ cacheKey);
public void AddCacheItemDependency(string cacheKey);
member this.AddCacheItemDependency : string -> unit
Public Sub AddCacheItemDependency (cacheKey As String)

Parameters

cacheKey
String

De sleutel van het item waarvan het antwoord in de cache afhankelijk is.

Voorbeelden

Het volgende voorbeeld is een ASP.NET gebruikersbeheer dat in de cache is opgeslagen. De code voor het besturingselement roept de methode aan AddCacheItemDependency met de sleutel van een item dat is opgeslagen in het Cache object dat als parameter is doorgegeven. Als het item niet in de cache bestaat, is het antwoord van het besturingselement dat is opgeslagen in de uitvoercache ongeldig. Dit betekent dat bij de volgende aanvraag een nieuwe versie van het antwoord van het besturingselement wordt toegevoegd aan de uitvoercache.

Vervolgens controleert de code of een item dat aan een bookData sleutel is gekoppeld, wordt opgeslagen in het Cache object en wordt een van de twee regels tekst weergegeven die afhankelijk zijn van het resultaat. Vervolgens wordt met de code de DataSource eigenschap van een DataGrid besturingselement dgBooksingesteld, met een aanroep naar de gedeelde methode van een aangepaste DataHelperGetBookData klasse, en wordt de DataGrid methode gevuld met de DataBind methode.

    <%@ 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>
     

Opmerkingen

Wanneer het item dat overeenkomt met de cacheKey parameter uit de cache wordt verwijderd, is het antwoord in de cache van het huidige item ongeldig.

Van toepassing op

Zie ook