Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe WebPartTransformer

Fornece uma implementação básica para classes transformador converter dados entre dois pontos de conexão incompatível.

Namespace:  System.Web.UI.WebControls.WebParts
Assembly:  System.Web (em System.Web.dll)
public abstract class WebPartTransformer

O tipo WebPartTransformer expõe os membros a seguir.

  NomeDescrição
Método protegidoWebPartTransformerInicializa uma nova instância da classe WebPartTransformer.
Superior
  NomeDescrição
Método públicoCreateConfigurationControlExibe uma página ASP.Controle de rede que configura um transformador na ConnectionsZone zona.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalize Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoGetHashCodeServe como uma função hash para um tipo específico. (Herdado de Object.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegidoLoadConfigurationStateCarrega o estado de configuração salvo com o SaveConfigurationState método.
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoSaveConfigurationStateSalva o estado de configuração definido pelo usuário no aplicativo ASP.Controle de configuração de rede.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Método públicoTransformQuando implementada, fornece um objeto para a transformação dos dados.
Superior

Transformadores são usados para converter dados entre dois controles de Web Parts com pontos de conexão incompatível. Pontos de conexão são incompatíveis quando eles fornecem ou consomem dados através de interfaces diferentes. Por exemplo, um provedor de implementação de um ponto de conexão do provedor do tipo IWebPartRow não foi possível conectar diretamente com um consumidor esperando um ponto de conexão do provedor do tipo IWebPartTable. Em vez disso, um transformador deve ser usado para conectar os dois controles de Web Parts.

O transformador aceita dados do tipo suportado pelo ponto de conexão do provedor. Ele faz o processamento interno necessário para converter esses dados para o tipo de suporte pelo ponto de conexão do consumidor.

Um transformador pode fornecer uma interface de usuário (UI) que permite ao usuário configurar o transformador no modo de conexão. O controle de configuração é recuperado por meio do CreateConfigurationControl método e é exibido em uma zona de conexões de Web Parts.

WebPartTransformer é uma classe abstrata e deve ser ampliado para fornecer conversões personalizadas entre diferentes tipos de pontos de conexão.

Observações para herdeiros

Você deve substituir o Transform método.

O exemplo de código a seguir demonstra como criar um transformador personalizado que deriva do WebPartTransformer classe. O transformador, chamado RowToStringTransformer, permite que um provedor de Web Parts e Web Parts consumidor com pontos de conexão incompatível deve ser conectado. O provedor apresenta os dados do tipo IWebPartRow, mas o consumidor aceita somente os dados do tipo String. O RowToStringTransformer classe executa a conversão necessária.

O exemplo de código não inclui uma implementação do provedor ou consumidor. Você deve criar um provedor que implementa o IWebPartRow interface e um consumidor que espera dados por meio de uma interface personalizada chamada IString para o exemplo funcione.


// An interface that the transformer provides to the consumer.
[AspNetHostingPermission(SecurityAction.Demand,
  Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
  Level = AspNetHostingPermissionLevel.Minimal)]
public interface IString
{
    void GetStringValue(StringCallback callback);
}


A primeira seção do exemplo de código contém código para o provedor e controles de Web Parts do consumidor e o código para o transformador.


// A transformer that transforms a row to a string.
[AspNetHostingPermission(SecurityAction.Demand,
  Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
  Level = AspNetHostingPermissionLevel.Minimal)]
[WebPartTransformer(typeof(IWebPartRow), typeof(IString))]
public class RowToStringTransformer : WebPartTransformer, IString
{

    private IWebPartRow _provider;
    private StringCallback _callback;

    private void GetRowData(object rowData)
    {
        PropertyDescriptorCollection props = _provider.Schema;
        if (props != null && props.Count > 0 && rowData != null)
        {
            string returnValue = String.Empty;
            foreach (PropertyDescriptor prop in props)
            {
                if (prop != props[0])
                {
                    returnValue += ", ";
                }
                returnValue += prop.DisplayName + ": " + prop.GetValue(rowData);
            }
            _callback(returnValue);
        }
        else
        {
            _callback(null);
        }
    }

    public override object Transform(object providerData)
    {
        _provider = (IWebPartRow)providerData;
        return this;
    }

    void IString.GetStringValue(StringCallback callback)
    {
        if (callback == null)
        {
            throw new ArgumentNullException("callback");
        }

        if (_provider != null)
        {
            _callback = callback;
            _provider.GetRowData(new RowCallback(GetRowData));
        }
        else
        {
            callback(null);
        }
    }
}


A segunda seção do exemplo de código mostra como incluir o transformador dentro a sintaxe declarativa para um WebPartConnection objeto.


<%@ Page language="c#" trace="false" debug="true" %> 
<%@ register tagprefix="uc1" 
    tagname="DisplayModeMenuCS" 
    src="~/displaymodemenucs.ascx" %>
<%@ Register TagPrefix="wp" 
    NameSpace="Samples.AspNet.CS.Controls" %>

<script runat="server">

</script>

<!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>
<title>Web Parts Transformer Sample Page</title>
</head>
<body>
<form id="Form1" runat="server">

<asp:webpartmanager id="manager" runat="server">
  <staticconnections>
    <asp:webpartconnection id="conn1" providerid="p1" consumerid="c1">
      <wp:rowtostringtransformer />
    </asp:webpartconnection>
  </staticconnections>
</asp:webpartmanager>
<uc1:displaymodemenucs id="menu1" runat="server" />

<table>
<tr valign="top">
  <td>
  <asp:webpartzone id="zone1" headertext="zone1" runat="server">
    <zonetemplate>
      <wp:rowproviderwebpart id="p1" runat="server" />
      <wp:stringconsumerwebpart id="c1" runat="server" />
    </zonetemplate>
  </asp:webpartzone>
  </td>
  <td>
  <asp:connectionszone id="connectionszone1" runat="server" />
  </td>
</tr>
</table>

</form>
</body>
</html>


Um transformador personalizado deve ser especificado na <transformers> seção do arquivo Web. config para estar disponível para uso em uma página da Web. A terceira seção do exemplo de código mostra como adicionar o transformador personalizado no arquivo Web. config.

[Visual Basic]

<webParts enableExport="true">
    <transformers>
       <add name="RowToStringTransformer"
          type="Samples.AspNet.VB.Controls.RowToStringTransformer" />
    </transformers>
</webParts>

[C#]

<webParts enableExport="true">
    <transformers>
       <add name="RowToStringTransformer"
          type="Samples.AspNet.CS.Controls.RowToStringTransformer" />
    </transformers>
</webParts>

O exemplo de código inclui um controle de usuário que permite que você altere modos de exibição em uma página de Web Parts. O código-fonte para o controle de usuário é proveniente de outro tópico. Você pode obter o arquivo. ascx para o controle de usuário do Walkthrough: Changing Display Modes on a Web Parts Page, e ele deve ser colocado na mesma pasta que a página. aspx.

.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.