ControlCachePolicy Sınıf
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.
ASP.NET kullanıcı denetiminin çıkış önbelleği ayarlarına program aracılığıyla erişim sağlar.
public ref class ControlCachePolicy sealed
public sealed class ControlCachePolicy
type ControlCachePolicy = class
Public NotInheritable Class ControlCachePolicy
- Devralma
-
ControlCachePolicy
Örnekler
Aşağıdaki kod örneği, bir kullanıcı denetiminin çalışma zamanında dinamik olarak nasıl yüklendiğini ve program aracılığıyla nasıl düzenlendiğini gösterir.
PartialCachingAttribute özniteliği adlı SimpleControl
bir kullanıcı denetimine uygulanır, bu da kullanıcı denetiminin çalışma zamanında bir PartialCachingControl denetim tarafından sarmalandığı anlamına gelir. Nesnenin SimpleControl
önbelleğe alma ayarları, ilişkili ControlCachePolicy nesnesi aracılığıyla program aracılığıyla değiştirilebilir ve bunu sarmalayan denetime PartialCachingControl başvuru yoluyla kullanılabilir. Bu örnekte, Duration özellik sayfa başlatma sırasında incelenir ve bazı koşullar karşılanırsa ve SetExpires yöntemleri kullanılarak SetSlidingExpiration değiştirilir.
<%@ 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>
Aşağıdaki kod örneği, bir Web Forms sayfasından SimpleControl
kullanıcı denetiminin kullanılmasını gösterir. Bu örneği başarıyla çalıştırmak için kullanıcı denetim dosyasının (.ascx), arka planda kod dosyasının (.cs veya .vb) ve kullanıcı denetimini barındıran Web Forms sayfasının (.aspx) aynı dizinde olduğundan emin olun.
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>
Açıklamalar
ControlCachePolicy sınıfı, geliştiriciler tarafından programlı kullanıcı denetimi senaryolarında kullanıcı denetimleri (.ascx dosyaları) için çıktı önbelleğe alma ayarlarını belirtmek üzere kullanılır. ASP.NET kullanıcı denetimlerini bir BasePartialCachingControl örneğin içine ekler. sınıfı, BasePartialCachingControl çıktı önbelleğe alma özelliğinin etkinleştirildiği bir kullanıcı denetimini temsil eder. Bir PartialCachingControl denetimin özelliğine BasePartialCachingControl.CachePolicy eriştiğinde, her zaman geçerli ControlCachePolicy bir nesne alırsınız. Ancak, bir UserControl denetimin özelliğine UserControl.CachePolicy erişirsen, yalnızca kullanıcı denetimi zaten bir denetim tarafından sarmalanmışsa geçerli ControlCachePolicy bir BasePartialCachingControl nesne alırsınız. Sarmalanmazsa, özelliği tarafından döndürülen nesne, ControlCachePolicy ilişkili BasePartialCachingControlbir öğesi olmadığından onu işlemeye çalıştığınızda özel durumlar oluşturur. Bir UserControl örneğin özel durumlar oluşturmadan önbelleğe almayı destekleyip desteklemediğini belirlemek için özelliğini inceleyin SupportsCaching .
sınıfını ControlCachePolicy kullanmak, çıkış önbelleğini etkinleştirmenin çeşitli yollarından biridir. Aşağıdaki listede, çıktı önbelleğini etkinleştirmek için kullanabileceğiniz yöntemler açıklanmaktadır:
@ OutputCache
Bildirim temelli senaryolarda çıktı önbelleğe almayı etkinleştirmek için yönergesini kullanın.PartialCachingAttribute Arkadaki kod dosyasında kullanıcı denetimi için önbelleğe almayı etkinleştirmek için özniteliğini kullanın.
ControlCachePolicy Önceki yöntemlerden birini kullanarak önbellek etkinleştirilmiş ve yöntemini kullanarak dinamik olarak yüklenmiş örneklerle BasePartialCachingControl çalıştığınız programlı senaryolarda önbellek ayarlarını belirtmek için sınıfını TemplateControl.LoadControl kullanın. Bir ControlCachePolicy örnek, yalnızca denetim yaşam döngüsünün
Init
vePreRender
aşamaları arasında başarıyla değiştirilebilir. AşamadanPreRender
sonra bir ControlCachePolicy nesneyi değiştirirseniz, ASP.NET bir özel durum oluşturur, çünkü denetim işlendikten sonra yapılan değişiklikler önbellek ayarlarını gerçekten etkileyemez (aşama sırasındaRender
bir denetim önbelleğe alınır). Son olarak, bir kullanıcı denetimi örneği (ve dolayısıyla ControlCachePolicy nesnesi) yalnızca gerçekten işlendiğinde programlı işleme için kullanılabilir.
Özellikler
Cached |
Parça önbelleğinin kullanıcı denetimi için etkinleştirilip etkinleştirilmediğini belirten bir değer alır veya ayarlar. |
Dependency |
Önbelleğe alınan kullanıcı denetimi çıkışıyla ilişkili sınıfın bir örneğini CacheDependency alır veya ayarlar. |
Duration |
Önbelleğe alınan öğelerin çıktı önbelleğinde kalacağı süreyi alır veya ayarlar. |
ProviderName |
Bir denetim örneğiyle ilişkili çıktı önbelleği sağlayıcısının adını alır veya ayarlar. |
SupportsCaching |
Kullanıcı denetiminin önbelleğe almayı destekleyip desteklemediğini belirten bir değer alır. |
VaryByControl |
Önbelleğe alınan çıkışı değiştirmek için denetim tanımlayıcılarının listesini alır veya ayarlar. |
VaryByParams |
Önbelleğe alınan çıkışı değiştirmek için veya parametre adlarının |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
SetExpires(DateTime) |
Kullanıcı denetimini sarmalayan denetime belirtilen tarih ve saatte önbellek girişinin süresinin dolmasını belirtir BasePartialCachingControl . |
SetSlidingExpiration(Boolean) |
Kullanıcı denetimini sarmalayan denetime, kullanıcı denetiminin önbellek girişini kayan veya mutlak süre sonu kullanacak şekilde ayarlamasını ister BasePartialCachingControl . |
SetVaryByCustom(String) |
Çıkış önbelleğinin kullanıcı denetimini değiştirmek için kullanacağı özel dizelerin listesini ayarlar. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |