HttpResponse.AddCacheItemDependency(String) HttpResponse.AddCacheItemDependency(String) HttpResponse.AddCacheItemDependency(String) HttpResponse.AddCacheItemDependency(String) Method

Definición

Hace que la validez de una respuesta almacenada en caché dependa de otro elemento de la caché.Makes the validity of a cached response dependent on another item in the cache.

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

Parámetros

cacheKey
String String String String

Clave del elemento del que depende la respuesta almacenada en caché.The key of the item that the cached response is dependent upon.

Ejemplos

En el ejemplo siguiente se muestra un control de usuario ASP.NET que se almacena en caché como resultado.The following example is an ASP.NET user control that is output cached. El código para el control llama al AddCacheItemDependency método con la clave de un elemento almacenado en el Cache objeto pasado como su parámetro.The code for the control calls the AddCacheItemDependency method with the key of an item stored in the Cache object passed as its parameter. Si el elemento no existe en la memoria caché, se invalida la respuesta del control que se almacenó en la caché de resultados.If the item does not exist in the cache, the control's response that was stored in the output cache is invalidated. Esto significa que, en la solicitud subsiguiente, se agregará una nueva versión de la respuesta del control a la memoria caché de resultados.This means that on the subsequent request, a new version of the control's response will be added to the output cache.

Después, el código comprueba si un elemento asociado a una bookData clave se almacena en el Cache objeto y muestra una de las dos líneas de texto que dependen del resultado.Next, the code checks whether an item associated with a bookData key is stored in the Cache object, and displays one of two lines of text dependent upon the result. A continuación, el código establece DataSource la propiedad de DataGrid un control, que se dgBooksdenomina, con una llamada a un DataHelper método compartido GetBookData de la clase personalizada, y rellena DataGrid el con DataBind el método.Then, the code sets the DataSource property of a DataGrid control, which is named dgBooks, with a call to a custom DataHelper class' shared GetBookData method, and populates the DataGrid with the DataBind method.

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

Comentarios

Cuando el elemento correspondiente al cacheKey parámetro se quita de la memoria caché, la respuesta almacenada en caché del elemento actual no es válida.When the item corresponding to the cacheKey parameter is removed from the cache, the cached response of the current item is invalid.

Se aplica a

Consulte también: