Compartilhar via


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.Storage

    Um 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.String

    O nome a ser usado como a chave para o valor a ser armazenados no cache de Web Part.

  • value
    Type: System.Object

    Um System.Object que contém o valor a ser armazenado.

  • timeout
    Type: System.TimeSpan

    Um 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") + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"))
         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")+ "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
            this.RenderChildren(output);
        }

        private string fetchData()
        {
            return DateTime.Now.ToLongTimeString();
        }
    }
}
               

Ver também

Referência

WebPart class

WebPart members

Microsoft.SharePoint.WebPartPages namespace