ControlCachePolicy.Duration Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает время, которое кэшированные элементы останутся в выходном кэше.
public:
property TimeSpan Duration { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan Duration { get; set; }
member this.Duration : TimeSpan with get, set
Public Property Duration As TimeSpan
Значение свойства
Значение TimeSpan , представляющее время, когда элемент управления пользователем остается в выходном кэше. Значение по умолчанию — Zero.
Исключения
Пользовательский элемент управления не связан с элементом управления и BasePartialCachingControl не является кэшируемым.
–или–
Свойство Duration задается за пределами этапов инициализации и отрисовки элемента управления.
Примеры
В следующем примере кода показано, как пользовательский элемент управления можно загружать динамически и управлять ими программным способом во время выполнения. Атрибут PartialCachingAttribute применяется к имени SimpleControlпользовательского элемента управления, что означает, что он упаковывается PartialCachingControl элементом управления во время выполнения.
SimpleControl Параметры кэширования объекта можно программным способом управлять с помощью связанного ControlCachePolicy объекта, который доступен через ссылку на PartialCachingControl элемент управления, который обтекает его. В этом примере Duration свойство проверяется во время инициализации страниц и истечения срока действия кэша, если выполняются некоторые условия. Этот пример является частью более крупного примера, предоставленного ControlCachePolicy для класса.
<%@ 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>
Комментарии
Если задана абсолютная политика истечения срока действия с помощью SetSlidingExpiration метода, Duration свойство возвращает время, оставшееся до истечения срока действия записи кэша.