ControlCachePolicy ControlCachePolicy ControlCachePolicy ControlCachePolicy Class

Definition

Ermöglicht programmgesteuerten Zugriff auf die Ausgabecacheeinstellungen der Ausgabe für ein ASP.NET-Benutzersteuerelement.Provides programmatic access to an ASP.NET user control's output cache settings.

public ref class ControlCachePolicy sealed
public sealed class ControlCachePolicy
type ControlCachePolicy = class
Public NotInheritable Class ControlCachePolicy
Vererbung
ControlCachePolicyControlCachePolicyControlCachePolicyControlCachePolicy

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Benutzer Steuerelement dynamisch geladen und zur Laufzeit Programm gesteuert bearbeitet werden kann.The following code example demonstrates how a user control can be loaded dynamically and manipulated programmatically at run time. Das PartialCachingAttribute -Attribut wird auf ein Benutzer Steuerelement SimpleControlmit dem Namen angewendet. Dies bedeutet, dass das PartialCachingControl Benutzer Steuerelement zur Laufzeit von einem-Steuerelement umschließt wird.The PartialCachingAttribute attribute is applied to a user control named SimpleControl, which means the user control is wrapped by a PartialCachingControl control at run time. Die SimpleControl zwischen Speicherungs Einstellungen des Objekts können Programm gesteuert über das zugehörige ControlCachePolicy -Objekt manipuliert werden, das über einen Verweis PartialCachingControl auf das Steuerelement verfügbar ist, das es umschließt.The SimpleControl object's caching settings can be programmatically manipulated through its associated ControlCachePolicy object, which is available through a reference to the PartialCachingControl control that wraps it. In diesem Beispiel wird die Duration -Eigenschaft während der Seiten Initialisierung überprüft und mithilfe der SetSlidingExpiration - SetExpires Methode und der-Methode geändert, wenn bestimmte Bedingungen erfüllt sind.In this example, the Duration property is examined during page initialization and changed using the SetSlidingExpiration and SetExpires methods if some conditions are met.

<%@ Page Language="C#" %>
<%@ Reference Control="SimpleControl.ascx" %>
<script language="C#" runat="server">

// The following example demonstrates how to load a user control dynamically at run time, and
// work with the ControlCachePolicy object associated with it.

// Loads and displays a UserControl defined in a seperate Logonform.ascx file.
// You need to have "SimpleControl.ascx" file in 
// the same directory as the aspx file. 

void Page_Init(object sender, System.EventArgs e) {
    
    // Obtain a PartialCachingControl object which wraps the 'LogOnControl' user control.
    PartialCachingControl pcc = LoadControl("SimpleControl.ascx") as PartialCachingControl;        
    
    // If the control is slated to expire in greater than 60 Seconds
    if (pcc.CachePolicy.Duration > TimeSpan.FromSeconds(60) ) 
    {        
        // Make it expire faster. Set a new expiration time to 30 seconds, and make it
        // an absolute expiration if it isnt already.        
        pcc.CachePolicy.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(30)));
        pcc.CachePolicy.SetSlidingExpiration(false);
    }                    
    Controls.Add(pcc);
}
</script>
<%@ Page Language="VB" %>
<%@ Reference Control="SimpleControl.ascx" %>
<script language="VB" runat="server">

    ' The following example demonstrates how to load a user control dynamically at run time, and
    ' work with the ControlCachePolicy object associated with it.

    ' Loads and displays a UserControl defined in a seperate Logonform.ascx file.
    ' You need to have "SimpleControl.ascx" file in 
    ' the same directory as the aspx file. 

    Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)
    
        ' Obtain a PartialCachingControl object which wraps the 'LogOnControl' user control.
        Dim pcc As PartialCachingControl
        pcc = LoadControl("SimpleControl.ascx")
    
        ' If the control is slated to expire in greater than 60 Seconds
        If (pcc.CachePolicy.Duration > TimeSpan.FromSeconds(60)) Then
            ' Make it expire faster. Set a new expiration time to 30 seconds, and make it
            ' an absolute expiration if it isnt already.        
            pcc.CachePolicy.SetExpires(DateTime.Now.Add(TimeSpan.FromSeconds(30)))
            pcc.CachePolicy.SetSlidingExpiration(False)
        End If
        Controls.Add(pcc)
    End Sub
</script>

Im folgenden Codebeispiel wird die Verwendung SimpleControl des Benutzer Steuer Elements aus einer Web Forms Seite veranschaulicht.The following code example demonstrates using the SimpleControl user control from a Web Forms page. Um dieses Beispiel erfolgreich auszuführen, stellen Sie sicher, dass sich die Benutzer Steuerelement Datei (ASCX), die zugehörige Code Behind-Datei (. cs oder. vb) und die Web Forms Seite, die das Benutzer Steuerelement (. aspx) hostet, im gleichen Verzeichnis befinden.To run this example successfully, make sure the user control file (.ascx), its code-behind file (.cs or .vb), and the Web Forms page that hosts the user control (.aspx) are in the same directory.

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

[PartialCaching(100)]
public partial class SimpleControl : System.Web.UI.UserControl
{    
    protected void Page_Load(object sender, EventArgs e)
    {
        ItemsRemaining.Text = GetAvailableItems().ToString();
        CacheTime.Text = DateTime.Now.ToLongTimeString();
    }

    private int GetAvailableItems()
    {
        SqlConnection sqlConnection = new SqlConnection
            ("Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;");
        SqlCommand sqlCommand = sqlConnection.CreateCommand();
        sqlCommand.CommandType = CommandType.StoredProcedure;
        sqlCommand.CommandText = "GetRemainingItems";
        sqlConnection.Open();
        int items = (int)sqlCommand.ExecuteScalar();
        sqlConnection.Close();
        return items;
    }
}
Imports System.Data.SqlClient

Partial Class SimpleControl
    Inherits System.Web.UI.UserControl

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        ItemsRemaining.Text = GetAvailableItems().ToString()
        CacheTime.Text = DateTime.Now.ToLongTimeString()
    End Sub

    Private Function GetAvailableItems() As Integer
        Dim sqlConnection As SqlConnection
        Dim sqlCommand As SqlCommand
        Dim items As Integer

        sqlConnection = New SqlConnection("Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;")
        sqlCommand = sqlConnection.CreateCommand()
        sqlCommand.CommandType = Data.CommandType.StoredProcedure
        sqlCommand.CommandText = "GetRemainingItems"
        sqlConnection.Open()
        items = CInt(sqlCommand.ExecuteScalar())
        sqlConnection.Close()
        Return items
    End Function
End Class
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SimpleControl.ascx.cs" Inherits="SimpleControl" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<table cellspacing="15">
<tr>
<td><b>Available items: </b></td>
<td>
    <asp:Label ID="ItemsRemaining" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td><b>As of: </b></td>
<td>
    <asp:Label ID="CacheTime" runat="server" Text="Label"></asp:Label>
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ Control Language="VB" AutoEventWireup="true" CodeFile="SimpleControl.ascx.vb" Inherits="SimpleControl" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<table cellspacing="15">
<tr>
<td><b>Available items: </b></td>
<td>
    <asp:Label ID="ItemsRemaining" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td><b>As of: </b></td>
<td>
    <asp:Label ID="CacheTime" runat="server" Text="Label"></asp:Label>
</td>
</tr>
</table>
</form>
</body>
</html>

Hinweise

Die ControlCachePolicy -Klasse wird von Entwicklern in programmatischen Benutzer Steuerungs Szenarios verwendet, um Ausgabe Cache Einstellungen für Benutzer Steuerelemente (ASCX-Dateien) anzugeben.The ControlCachePolicy class is used by developers in programmatic user control scenarios to specify output caching settings for user controls (.ascx files). ASP.net bettet Benutzer Steuerelemente in BasePartialCachingControl einer-Instanz ein.ASP.NET embeds user controls within a BasePartialCachingControl instance. Die BasePartialCachingControl -Klasse stellt ein Benutzer Steuerelement dar, für das das Ausgabe Caching aktiviert ist.The BasePartialCachingControl class represents a user control that has output caching enabled. Wenn Sie BasePartialCachingControl.CachePolicy ControlCachePolicy auf die-Eigenschaft eines- SteuerElementszugreifen,erhaltenSieimmereingültiges-Objekt.PartialCachingControlWhen you access the BasePartialCachingControl.CachePolicy property of a PartialCachingControl control, you will always receive a valid ControlCachePolicy object. Wenn UserControl.CachePolicy Sie jedoch UserControl auf die-Eigenschaft eines-Steuer Elements zugreifen, erhalten Sie ControlCachePolicy nur dann ein gültiges-Objekt, wenn das Benutzer Steuer BasePartialCachingControl Element bereits von einem-Steuerelement umschließt ist.However, if you access the UserControl.CachePolicy property of a UserControl control, you receive a valid ControlCachePolicy object only if the user control is already wrapped by a BasePartialCachingControl control. Wenn Sie nicht umschließt wird, ControlCachePolicy löst das von der-Eigenschaft zurückgegebene-Objekt Ausnahmen aus, wenn Sie versuchen, es zu manipulieren, BasePartialCachingControlda ihm kein zugeordnet ist.If it is not wrapped, the ControlCachePolicy object returned by the property will throw exceptions when you attempt to manipulate it because it does not have an associated BasePartialCachingControl. Überprüfen Sie die UserControl -Eigenschaft, um zu bestimmen, ob eine SupportsCaching -Instanz das Caching ohne das Erzeugen von AusnahmenTo determine whether a UserControl instance supports caching without generating exceptions, inspect the SupportsCaching property.

Die Verwendung ControlCachePolicy der-Klasse ist eine von mehreren Möglichkeiten, das Zwischenspeichern von Ausgaben zu aktivieren.Using the ControlCachePolicy class is one of several ways you can enable output caching. In der folgenden Liste werden Methoden beschrieben, mit denen Sie die Ausgabe Zwischenspeicherung aktivieren können:The following list describes methods you can use to enable output caching:

  • Verwenden Sie die-Direktive, um den Ausgabe Cache in deklarativen Szenarien zu aktivieren.Use the directive to enable output caching in declarative scenarios.

  • Verwenden Sie PartialCachingAttribute das-Attribut, um das Zwischenspeichern für ein Benutzer Steuerelement in einer Code Behind-Datei zu aktivieren.Use the PartialCachingAttribute attribute to enable caching for a user control in a code-behind file.

  • Verwenden Sie ControlCachePolicy die-Klasse, um Cache Einstellungen in programmgesteuerten Szenarien anzugeben, in BasePartialCachingControl denen Sie mit Instanzen arbeiten, die mithilfe einer der vorherigen Methoden zwischengespeichert und mithilfe der TemplateControl.LoadControl -Methode dynamisch geladen wurden.Use the ControlCachePolicy class to specify cache settings in programmatic scenarios in which you are working with BasePartialCachingControl instances that have been cache-enabled using one of the previous methods and dynamically loaded using the TemplateControl.LoadControl method. Eine ControlCachePolicy -Instanz kann nur zwischen den Init Phasen und PreRender des Steuerungs Lebenszyklus geändert werden.A ControlCachePolicy instance can be successfully manipulated only between the Init and PreRender stages of the control life cycle. Wenn Sie ein ControlCachePolicy -Objekt nach der PreRender Phase ändern, löst ASP.net eine Ausnahme aus, da alle Änderungen, die nach dem Rendern des Steuer Elements vorgenommen werden, sich nicht auf die Render Cache Einstellungen auswirken können (ein Steuerelement wird während der Phase zwischengespeichert)If you modify a ControlCachePolicy object after the PreRender phase, ASP.NET throws an exception, because any changes made after the control is rendered cannot actually affect cache settings (a control is cached during the Render stage). Schließlich ist eine Benutzer Steuerelement Instanz (und damit ControlCachePolicy auch Ihr Objekt) nur für die programmgesteuerte Bearbeitung verfügbar, wenn Sie tatsächlich gerendert wird.Finally, a user control instance (and therefore its ControlCachePolicy object) is only available for programmatic manipulation when it is actually rendered.

Eigenschaften

Cached Cached Cached Cached

Ruft einen Wert fest ab, der angibt, ob das Zwischenspeichern von Fragmenten für das Benutzersteuerelement aktiviert ist, oder legt diesen fest.Gets or sets a value indicating whether fragment caching is enabled for the user control.

Dependency Dependency Dependency Dependency

Ruft eine Instanz der CacheDependency-Klasse ab, die der zwischengespeicherten Ausgabe des Benutzersteuerelements zugeordnet ist, oder legt diese fest.Gets or sets an instance of the CacheDependency class associated with the cached user control output.

Duration Duration Duration Duration

Ruft die Zeitspanne ab, die zwischengespeicherte Elemente im Ausgabecache verbleiben, oder legt diese fest.Gets or sets the amount of time that cached items are to remain in the output cache.

ProviderName ProviderName ProviderName ProviderName

Ruft den Namen des Ausgabecacheanbieters ab, der einer Steuerelementinstanz zugeordnet ist, oder legt diesen fest.Gets or sets the name of the output-cache provider that is associated with a control instance.

SupportsCaching SupportsCaching SupportsCaching SupportsCaching

Ruft einen Wert ab, der angibt, ob das Benutzersteuerelement Zwischenspeicherung unterstützt.Gets a value indicating whether the user control supports caching.

VaryByControl VaryByControl VaryByControl VaryByControl

Ruft eine Liste mit Steuerelementbezeichnern ab, anhand derer die zwischengespeicherte Ausgabe variiert werden kann, oder legt diese fest.Gets or sets a list of control identifiers to vary the cached output by.

VaryByParams VaryByParams VaryByParams VaryByParams

Ruft eine Liste mit GET-Parameternamen oder POST-Parameternamen ab, anhand derer die zwischengespeicherte Ausgabe variiert werden kann, oder legt diese fest.Gets or sets a list of GET or POST parameter names to vary the cached output by.

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
SetExpires(DateTime) SetExpires(DateTime) SetExpires(DateTime) SetExpires(DateTime)

Weist das BasePartialCachingControl-Steuerelement an, das das Benutzersteuerelement umschließt, den Cacheeintrag zum angegebenen Zeitpunkt (Datum und Uhrzeit) ablaufen zu lassen.Instructs the BasePartialCachingControl control that wraps the user control to expire the cache entry at the specified date and time.

SetSlidingExpiration(Boolean) SetSlidingExpiration(Boolean) SetSlidingExpiration(Boolean) SetSlidingExpiration(Boolean)

Weist das BasePartialCachingControl-Steuerelement an, das das Benutzersteuerelement umschließt, für den Cacheeintrag des Benutzersteuerelements gleitende oder absolute Ablaufzeit festzulegen.Instructs the BasePartialCachingControl control that wraps the user control to set the user control's cache entry to use sliding or absolute expiration.

SetVaryByCustom(String) SetVaryByCustom(String) SetVaryByCustom(String) SetVaryByCustom(String)

Legt eine Liste der benutzerdefinierten Zeichenfolgen fest, die vom Ausgabecache zum Variieren des Benutzersteuerelements verwendet werden.Sets a list of custom strings that the output cache will use to vary the user control.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für:

Siehe auch