ConnectionConsumerAttribute Clase

Definición

Identifica el método de devolución de llamada de un control de servidor que actúa como consumidor en una conexión de elementos Web, y permite a los desarrolladores especificar detalles sobre el punto de conexión del consumidor.Identifies the callback method in a server control acting as the consumer in a Web Parts connection, and enables developers to specify details about the consumer's connection point.

public ref class ConnectionConsumerAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
public class ConnectionConsumerAttribute : Attribute
type ConnectionConsumerAttribute = class
    inherit Attribute
Public Class ConnectionConsumerAttribute
Inherits Attribute
Herencia
ConnectionConsumerAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se ConnectionConsumerAttribute muestra cómo usar la clase, mostrando cómo ConnectionConsumerAttribute declarar el elemento de metadatos en un método de devolución de llamada en un control de consumidor.The following code example demonstrates using the ConnectionConsumerAttribute class, by showing how to declare the ConnectionConsumerAttribute metadata element on a callback method in a consumer control. Tenga en cuenta que se usa la sobrecarga más simple del constructor; solo se displayName proporciona el valor del parámetro.Note that the simplest overload of the constructor is used; only the displayName parameter value is supplied.

[ConnectionConsumer("Row")]
public void SetConnectionInterface(IWebPartRow provider) 
{
    _provider = provider;
}
    <ConnectionConsumer("Row")> _
    Public Sub SetConnectionInterface(ByVal provider As IWebPartRow)
        _provider = provider

    End Sub
End Class

En los siguientes ejemplos de código se muestra cómo crear una conexión estática básica entre dos controles elementos Web mediante WebPartConnection la clase.The following code examples demonstrate how to create a basic, static connection between two Web Parts controls using the WebPartConnection class. Los archivos de código de consumidor y proveedor deben colocarse en la carpeta App_Code en la carpeta de la aplicación que contiene la página. aspx.The provider and consumer code files should be put into the App_Code folder under the application folder that contains the .aspx page.

En el primer ejemplo se muestra una clase que actúa como proveedor.The first example shows a class acting as a provider.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//This sample code creates a Web Parts control that acts as a provider of row data.
namespace My 
{
    public sealed class RowProviderWebPart : WebPart, IWebPartRow 
    {

        private DataTable _table;

        public RowProviderWebPart() 
        {
            _table = new DataTable();

            DataColumn col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Name";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Address";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(int);
            col.ColumnName = "ZIP Code";
            _table.Columns.Add(col);

            DataRow row = _table.NewRow();
            row["Name"] = "John Q. Public";
            row["Address"] = "123 Main Street";
            row["ZIP Code"] = 98000;
            _table.Rows.Add(row);
        }
        [ConnectionProvider("Row")]
        public IWebPartRow GetConnectionInterface()
        {
            return new RowProviderWebPart();
        }
        public PropertyDescriptorCollection Schema 
        {
            get {
                return TypeDescriptor.GetProperties(_table.DefaultView[0]);
                }
        }
        public void GetRowData(RowCallback callback)
        {
            callback(_table.Rows);
        }
    }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Reflection
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

'This sample code creates a Web Parts control that acts as a provider of row data.
Namespace MyCustomWebPart

    Public NotInheritable Class RowProviderWebPart
        Inherits WebPart
        Implements IWebPartRow

        Private _table As DataTable


        Public Sub New()
            _table = New DataTable()

            Dim col As New DataColumn()
            col.DataType = GetType(String)
            col.ColumnName = "Name"
            _table.Columns.Add(col)

            col = New DataColumn()
            col.DataType = GetType(String)
            col.ColumnName = "Address"
            _table.Columns.Add(col)

            col = New DataColumn()
            col.DataType = GetType(Integer)
            col.ColumnName = "ZIP Code"
            _table.Columns.Add(col)

            Dim row As DataRow = _table.NewRow()
            row("Name") = "John Q. Public"
            row("Address") = "123 Main Street"
            row("ZIP Code") = 98000
            _table.Rows.Add(row)

        End Sub

        <ConnectionProvider("Row")> _
        Public Function GetConnectionInterface() As IWebPartRow
            Return New RowProviderWebPart()

        End Function 'GetConnectionInterface

        Public ReadOnly Property Schema() As PropertyDescriptorCollection _
            Implements IWebPartRow.Schema
            Get
                Return TypeDescriptor.GetProperties(_table.DefaultView(0))
            End Get
        End Property

        Public Sub GetRowData(ByVal callback As RowCallback) _
            Implements IWebPartRow.GetRowData
            callback(_table.Rows)

        End Sub
    End Class

En el segundo ejemplo se muestra una clase que actúa como consumidor.The second example shows a class acting as a consumer. Observe que un método se designa como método de devolución de llamada ConnectionConsumerAttribute con el elemento de metadatos.Notice that a method is designated as the callback method with the ConnectionConsumerAttribute metadata element.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
// This sample code creates a Web Parts control that acts as a consumer of row data.
namespace My 
{

    public sealed class RowConsumerWebPart : WebPart {
        private IWebPartRow _provider;
        private ICollection _tableData;
    
            private void GetRowData(object rowData)
            {
                _tableData = (ICollection)rowData;
            }

        protected override void OnPreRender(EventArgs e)
        {
                if (_provider != null)
                {
                    _provider.GetRowData(new RowCallback(GetRowData));
                }
        }


        protected override void RenderContents(HtmlTextWriter writer) {
            if (_provider != null) {
                PropertyDescriptorCollection props = _provider.Schema;
                int count = 0;
                if (props != null && props.Count > 0 && _tableData != null) {
                    foreach (PropertyDescriptor prop in props) 
                    {
                        foreach (DataRow o in _tableData)
                        {
                            writer.Write(prop.DisplayName + ": " + o[count]);
                            writer.WriteBreak();
                            writer.WriteLine();
                            count = count + 1;
                        }
                    }
                }
                else {
                    writer.Write("No data");
                }
            }
            else {
                writer.Write("Not connected");
            }
        }
        [ConnectionConsumer("Row")]
        public void SetConnectionInterface(IWebPartRow provider) 
        {
            _provider = provider;
        }
         }
    
    }
//}
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Reflection
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

' This sample code creates a Web Parts control that acts as a consumer of row data.
Namespace MyCustomWebPart

    Public NotInheritable Class RowConsumerWebPart
        Inherits WebPart
        Private _provider As IWebPartRow
        Private _tableData As ICollection


        Private Sub GetRowData(ByVal rowData As Object)
            _tableData = CType(rowData, ICollection)

        End Sub


        Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
            If Not (_provider Is Nothing) Then
                '        _provider.GetRowData(AddressOf (New RowCallback(GetRowData)))
                _provider.GetRowData(AddressOf GetRowData)
                '    _provider.GetRowData(New RowCallback(AddressOf GetRowData))
            End If

        End Sub



        Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter)
            If Not (_provider Is Nothing) Then
                Dim props As PropertyDescriptorCollection = _provider.Schema
                Dim count As Integer = 0
                If Not (props Is Nothing) AndAlso props.Count > 0 AndAlso Not (_tableData Is Nothing) Then
                    Dim prop As PropertyDescriptor
                    For Each prop In props
                        Dim o As DataRow
                        For Each o In _tableData
                            writer.Write(prop.DisplayName & ": " & o(count))
                            writer.WriteBreak()
                            writer.WriteLine()
                            count = count + 1
                        Next o
                    Next prop
                Else
                    writer.Write("No data")
                End If
            Else
                writer.Write("Not connected")
            End If

        End Sub

        <ConnectionConsumer("Row")> _
        Public Sub SetConnectionInterface(ByVal provider As IWebPartRow)
            _provider = provider

        End Sub
    End Class

En el ejemplo final se muestra la página ASP.NET que contiene los dos controles.The final example shows the ASP.NET page that contains the two controls.

<%@ page language="C#" %>
<%@ register TagPrefix="my" Namespace="My" %>

<!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 runat="server">
    <title>IRow Test Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <!-- A static or dynamic connection is required to link two Web Parts controls. --->
        <asp:webpartmanager ID="WebPartManager1" runat="server">
            <staticconnections>
                <asp:webpartconnection ID="wp1" ProviderID="provider1" ConsumerID="consumer1" >
                </asp:webpartconnection>
            </staticconnections>
        </asp:webpartmanager>
       
        <asp:webpartzone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
                <!-- The following two lines specify the two connected controls. --->
                <my:RowProviderWebPart ID="provider1" runat="server" ToolTip="Row Provider Control" />
                <my:RowConsumerWebPart ID="consumer1" runat="server" ToolTip="Row Consumer Control" />
            </ZoneTemplate>
        </asp:webpartzone>
    </div>
    </form>
</body>
</html>
<%@ page language="VB" %>
<%@ Register TagPrefix="my" Namespace="MyCustomWebPart" %>

<!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 runat="server">
    <title>IRow Test Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <!-- A static or dynamic connection is required to link two Web Parts controls. --->
        <asp:webpartmanager ID="WebPartManager1" runat="server">
            <staticconnections>
                <asp:webpartconnection ID="wp1" ProviderID="provider1" ConsumerID="consumer1" >
                </asp:webpartconnection>
            </staticconnections>
        </asp:webpartmanager>
       
        <asp:webpartzone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
                <my:RowProviderWebPart ID="provider1" runat="server" ToolTip="Row Provider Control" />
                <my:RowConsumerWebPart ID="consumer1" runat="server" ToolTip="Row Consumer Control" />
           </ZoneTemplate>
        </asp:webpartzone>
    </div>
    </form>
</body>
</html>

Comentarios

Una conexión elementos Web se compone de dos controles de servidor que residen en una WebPartZoneBase zona y comparten datos por medio de una instancia de interfaz que se pasa de un control a otro.A Web Parts connection consists of two server controls residing in a WebPartZoneBase zone and sharing data by means of an interface instance passed from one control to the other. El control que sirve a la instancia de la interfaz se denomina proveedor, y el control que recibe la instancia de la interfaz y procesa o muestra los datos se denomina consumidor.The control that serves the interface instance is called the provider, and the control that receives the interface instance and processes or displays the data is called the consumer. Para más información sobre las conexiones, WebPartConnection consulte la información general sobre las conexionesde clases y elementos Web.For details on connections, see the WebPartConnection class and Web Parts Connections Overview.

El control consumidor en una conexión puede ser un WebPart control o cualquier tipo de control de servidor o de usuario, pero debe tener un método designado como método de devolución de llamada.The consumer control in a connection can be a WebPart control or any type of server or user control, but it must have a method designated as a callback method. El método de devolución de llamada se invoca durante el proceso de conexión y su finalidad es recibir del proveedor una instancia de interfaz que contiene datos.The callback method is invoked during the connection process, and its purpose is to receive from the provider an interface instance that contains data. Para designar el método que actúa como método de devolución de llamada en un consumidor, debe agregar ConnectionConsumerAttribute un elemento de metadatos al método (el elemento se basa ConnectionConsumerAttribute en la clase).To designate the method that serves as the callback method in a consumer, you must add a ConnectionConsumerAttribute metadata element to the method (the element is based on the ConnectionConsumerAttribute class).

Además de designar el método de devolución de llamada en un consumidor ConnectionConsumerAttribute , el objeto también permite especificar ciertos detalles sobre el punto de conexión de un consumidor.In addition to designating the callback method in a consumer, the ConnectionConsumerAttribute object also enables you to specify certain details about a consumer's connection point. Un punto de conexión del consumidor es una instancia ConsumerConnectionPoint de la clase que encapsula todos los detalles sobre un consumidor necesario para establecer una conexión, incluido el tipo de control del consumidor, si puede conectarse a varios proveedores al mismo tiempo, qué tipo de interfaz que el consumidor puede recibir de un proveedor, detalles sobre el método de devolución de llamada y un nombre para mostrar que representa el punto de conexión del consumidor en la interfaz de usuario (UI).A consumer connection point is an instance of the ConsumerConnectionPoint class that encapsulates all the details about a consumer needed to establish a connection, including the consumer's control type, whether it can connect to multiple providers at the same time, what type of interface the consumer can receive from a provider, details about the callback method, and a display name that represents the consumer connection point in the user interface (UI). Cada conexión de elementos web incluye un punto de conexión del consumidor que está asociado al control del consumidor.Every Web Parts connection includes a consumer connection point that is associated with the consumer control.

Al agregar el ConnectionConsumerAttribute elemento de metadatos al método de devolución de llamada en un consumidor, también puede utilizarlo para especificar los detalles siguientes sobre el punto de conexión del consumidor: un nombre para mostrar para el punto de conexión DisplayName (para obtener más información, vea la propiedad). Si el consumidor puede conectarse a varios proveedores al mismo tiempo (para obtener más información, vea AllowsMultipleConnections la propiedad), un identificador para el punto de conexión (para obtener más ID información, vea la propiedad) y el tipo de punto de conexión que utiliza el consumidor (para detalles, vea la ConnectionPointType propiedad).When you add the ConnectionConsumerAttribute metadata element to the callback method in a consumer, you can also use it to specify the following details about the consumer connection point: a display name for the connection point (for details, see the DisplayName property), whether the consumer can connect to multiple providers at the same time (for details, see the AllowsMultipleConnections property), an ID for the connection point (for details, see the ID property), and the type of the connection point that the consumer uses (for details, see the ConnectionPointType property). Las cuatro sobrecargas del constructor de la ConnectionConsumerAttribute clase tienen parámetros que le permiten especificar valores para una o varias de estas propiedades de punto de conexión cuando se crea una nueva instancia de la clase.The four overloads of the constructor for the ConnectionConsumerAttribute class each have parameters that allow you to specify values for one or more of these connection point properties when a new instance of the class is created. La mayoría de las propiedades de un punto de conexión del consumidor también se pueden establecer mediante programación; su configuración mediante el ConnectionConsumerAttribute elemento es opcional.Most of the properties for a consumer connection point can also be set programmatically; setting them using the ConnectionConsumerAttribute element is optional.

Nota

Al agregar el ConnectionConsumerAttribute elemento de metadatos a un método de devolución de llamada en un consumidor, el único parámetro necesario que debe especificar displayName siempre es el parámetro (para obtener ConnectionConsumerAttribute(String) más información, vea la sobrecarga del constructor).When you add the ConnectionConsumerAttribute metadata element to a callback method in a consumer, the only required parameter that you must always specify is the displayName parameter (for details, see the ConnectionConsumerAttribute(String) constructor overload). El valor de este parámetro se asigna a la DisplayName propiedad y, cuando un usuario abre la interfaz de usuario de la conexión ConnectionsZone (creada por el control), el nombre para mostrar representa el punto de conexión del consumidor en la interfaz de usuario.The value of this parameter is assigned to the DisplayName property, and when a user opens the connection UI (created by the ConnectionsZone control), the display name represents the consumer connection point in the UI. Si designa varios métodos de devolución de llamada en un control de consumidor, tendrá varios puntos de conexión posibles entre los que puede elegir y, al ConnectionConsumerAttribute agregar el elemento de metadatos a cada método de devolución de llamada, también id debe especificar un valor para el , de modo que cada punto de conexión del consumidor tenga un identificador único conocido.If you designate multiple callback methods in a consumer control, you will have multiple possible connection points to choose from, and when you add the ConnectionConsumerAttribute metadata element to each callback method, you should also specify a value for the id parameter, so that each consumer connection point has a known, unique identifier.

Constructores

ConnectionConsumerAttribute(String)

Inicializa una nueva instancia de la clase ConnectionConsumerAttribute especificando un nombre para mostrar para el punto de conexión del consumidor.Initializes a new instance of the ConnectionConsumerAttribute class, specifying a display name for the consumer connection point.

ConnectionConsumerAttribute(String, String)

Inicializa una nueva instancia de la clase ConnectionConsumerAttribute especificando un nombre para mostrar y un identificador para el punto de conexión del consumidor.Initializes a new instance of the ConnectionConsumerAttribute class, specifying a display name and an ID for the consumer connection point.

ConnectionConsumerAttribute(String, String, Type)

Inicializa una nueva instancia de la clase ConnectionConsumerAttribute, y especifica un nombre para mostrar, un identificador y el tipo concreto del objeto de punto de conexión que se usará para el punto de conexión del consumidor.Initializes a new instance of the ConnectionConsumerAttribute class, specifying a display name, an ID, and a specific type of connection point object to use for the consumer connection point.

ConnectionConsumerAttribute(String, Type)

Inicializa una nueva instancia de la clase ConnectionConsumerAttribute especificando un nombre para mostrar y un tipo de objeto de punto de conexión específico que se va a utilizar en el punto de conexión del consumidor.Initializes a new instance of the ConnectionConsumerAttribute class, specifying a display name and a specific type of connection point object to use for the consumer connection point.

Propiedades

AllowsMultipleConnections

Obtiene o establece un valor que indica si el punto de conexión permite varias conexiones.Gets or sets a value that indicates whether the connection point allows multiple connections.

ConnectionPointType

Obtiene el tipo de punto de conexión del consumidor.Gets the connection point type of the consumer connection point.

DisplayName

Obtiene el nombre descriptivo del punto de conexión del consumidor.Gets the friendly name of the consumer connection point.

DisplayNameValue

Obtiene o establece la cadena que se utiliza como valor de la propiedad DisplayName, que se puede utilizar en escenarios de localización.Gets or sets the string used as the value of the DisplayName property, for use in localization scenarios.

ID

Obtiene una cadena que representa la identidad única del punto de conexión del consumidor.Gets a string that represents the unique identity of the consumer connection point.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Heredado de Attribute)

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Heredado de Attribute)

Se aplica a

Consulte también: