WebPart.PartCacheWrite method
Armazena o valor especificado do tipo especificado de armazenamento em cache de Web Parts.
Namespace: Microsoft.SharePoint.WebPartPages
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Protected Sub PartCacheWrite ( _
storage As Storage, _
key As String, _
value As Object, _
timeout As TimeSpan _
)
'Uso
Dim storage As Storage
Dim key As String
Dim value As Object
Dim timeout As TimeSpan
Me.PartCacheWrite(storage, key, value, _
timeout)
protected void PartCacheWrite(
Storage storage,
string key,
Object value,
TimeSpan timeout
)
Parâmetros
storage
Type: Microsoft.SharePoint.WebPartPages.StorageUm valor de Storage que especifica o tipo de armazenamento em cache de Web Parts onde um valor é armazenado. Valores possíveis são Personal e Shared. Especificar None armazena nothing.
key
Type: System.StringO nome a ser usado como a chave para o valor a ser armazenados no cache de Web Part.
value
Type: System.ObjectUm System.Object que contém o valor a ser armazenado.
timeout
Type: System.TimeSpanUm System.TimeSpan que especifica o período durante o qual PartCacheWrite tenta gravar um valor.
Comentários
Se o CacheType for CacheObject, qualquer objeto pode ser armazenado no cache. Se o CacheType for Database, o objeto deve ser marcado como serializable (System.SerializableAttribute).
Examples
O exemplo de código a seguir mostra uma Web Part que armazena em cache e exibe a hora quando ele é processado pela primeira vez e fornece um botão para atualizar o cache de Web Parts com a hora atual.
Imports System
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Xml.Serialization
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Utilities
Imports Microsoft.SharePoint.WebPartPages
Namespace WebPartLibrary1
<DefaultProperty("Text"), _
ToolboxData("<{0}:CacheSample runat=server></{0}:CacheSample>"), _
XmlRoot([Namespace] := "WebPartLibrary1")>
Public Class CacheSample
Inherits Microsoft.SharePoint.WebPartPages.WebPart
Private refreshButton As Button
Public Sub New()
AddHandler Me.PreRender, AddressOf UpdateCache
End Sub
Protected Overrides Sub CreateChildControls()
refreshButton = New Button()
refreshButton.Text = "Refresh Cache"
AddHandler refreshButton.Click, AddressOf refreshButton_click
Me.Controls.Add(refreshButton)
End Sub
Public Sub UpdateCache(o As Object, e As System.EventArgs)
If Me.PartCacheRead(Storage.Shared, "cacheKey") Is Nothing Then
Me.PartCacheWrite(Storage.Shared, "cacheKey", fetchData(), TimeSpan.FromSeconds(10))
End If
End Sub
Private Sub refreshButton_click(o As Object, e As System.EventArgs)
Me.PartCacheInvalidate(Storage.Shared, "cacheKey")
End Sub
Protected Overrides Sub RenderWebPart(output As HtmlTextWriter)
output.Write("Cache Value: ")
output.Write((PartCacheRead(Storage.Shared, "cacheKey") + " "))
Me.RenderChildren(output)
End Sub
Private Function fetchData() As String
Return DateTime.Now.ToLongTimeString()
End Function
End Class
End Namespace
using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.WebPartPages;
namespace WebPartLibrary1
{
/// <summary>
/// Summary description for CacheSample.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:CacheSample runat=server></{0}:CacheSample>"),
XmlRoot(Namespace="WebPartLibrary1")]
public class CacheSample : Microsoft.SharePoint.WebPartPages.WebPart
{
Button refreshButton;
public CacheSample()
{
this.PreRender+=new EventHandler(UpdateCache);
}
protected override void CreateChildControls()
{
refreshButton = new Button();
refreshButton.Text="Refresh Cache";
refreshButton.Click+=new EventHandler(refreshButton_click);
this.Controls.Add(refreshButton);
}
public void UpdateCache(object o, System.EventArgs e)
{
if(this.PartCacheRead(Storage.Shared,"cacheKey") == null)
{
this.PartCacheWrite(Storage.Shared,"cacheKey", fetchData(), TimeSpan.FromSeconds(10));
}
}
private void refreshButton_click(object o, System.EventArgs e)
{
this.PartCacheInvalidate(Storage.Shared, "cacheKey");
}
protected override void RenderWebPart(HtmlTextWriter output)
{
output.Write("Cache Value: ");
output.Write(PartCacheRead(Storage.Shared,"cacheKey")+ " ");
this.RenderChildren(output);
}
private string fetchData()
{
return DateTime.Now.ToLongTimeString();
}
}
}