Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase ConnectionConsumerAttribute

 

Publicado: noviembre de 2016

Identifica el método de devolución de llamada en 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.

Espacio de nombres:   System.Web.UI.WebControls.WebParts
Ensamblado:  System.Web (en System.Web.dll)

System.Object
  System.Attribute
    System.Web.UI.WebControls.WebParts.ConnectionConsumerAttribute

[AttributeUsageAttribute(AttributeTargets.Method)]
public class ConnectionConsumerAttribute : Attribute

NombreDescripción
System_CAPS_pubmethodConnectionConsumerAttribute(String)

Inicializa una nueva instancia de la ConnectionConsumerAttribute clase, especificando un nombre para mostrar para el punto de conexión del consumidor.

System_CAPS_pubmethodConnectionConsumerAttribute(String, String)

Inicializa una nueva instancia de la ConnectionConsumerAttribute (clase), especificando un nombre para mostrar y un identificador para el punto de conexión del consumidor.

System_CAPS_pubmethodConnectionConsumerAttribute(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.

System_CAPS_pubmethodConnectionConsumerAttribute(String, Type)

Inicializa una nueva instancia de la ConnectionConsumerAttribute clase especificando un nombre para mostrar y un tipo específico del objeto de punto de conexión que se utilizará para el punto de conexión del consumidor.

NombreDescripción
System_CAPS_pubpropertyAllowsMultipleConnections

Obtiene o establece un valor que indica si el punto de conexión permite varias conexiones.

System_CAPS_pubpropertyConnectionPointType

Obtiene el tipo de punto de conexión del punto de conexión del consumidor.

System_CAPS_pubpropertyDisplayName

Obtiene el nombre descriptivo del punto de conexión del consumidor.

System_CAPS_protpropertyDisplayNameValue

Obtiene o establece la cadena que se utiliza como el valor de la DisplayName propiedad para su uso en escenarios de localización.

System_CAPS_pubpropertyID

Obtiene una cadena que representa la identidad única del punto de conexión del consumidor.

System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute).

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Heredado de Attribute).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Heredado de Attribute).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.(Heredado de Attribute).

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute).

Una conexión de elementos Web se compone de dos controles de servidor que residen en un WebPartZoneBase zona y compartir datos por medio de una instancia de interfaz se pasan de un control a otro. El control que proporciona la instancia de interfaz se denomina el proveedor y el control que recibe la instancia de la interfaz y los procesos o muestra los datos se denomina consumidor. Para obtener más información sobre las conexiones, consulte la WebPartConnection clase y Web Parts Connections Overview.

El control consumidor de una conexión puede ser un WebPart control o cualquier tipo de control de usuario o de servidor, pero debe tener un método designado como método de devolución de llamada. 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 la interfaz que contiene los datos. Para designar el método que actúa como método de devolución de llamada en un consumidor, debe agregar un ConnectionConsumerAttribute elemento de metadatos en el método (el elemento se basa en la ConnectionConsumerAttribute clase).

Además de designar el método de devolución de llamada en un consumidor, el ConnectionConsumerAttribute objeto también le permite especificar ciertos detalles sobre el punto de conexión del consumidor. Un punto de conexión del consumidor es una instancia de la ConsumerConnectionPoint clase que encapsula todos los detalles sobre un consumidor necesarios para establecer una conexión, incluidos el tipo de control del consumidor, si se puede conectar a varios proveedores al mismo tiempo, qué tipo de interfaz que el consumidor pueden 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). Cada conexión de elementos Web incluye un punto de conexión del consumidor que está asociado con el control de consumidor.

Al agregar el ConnectionConsumerAttribute elemento de metadatos para el método de devolución de llamada en un consumidor, también sirve para especificar los siguientes detalles sobre el punto de conexión de consumidor: un nombre para mostrar para el punto de conexión (para obtener más información, consulte el DisplayName propiedad), si el consumidor puede conectarse a varios proveedores al mismo tiempo (para obtener más información, consulte el AllowsMultipleConnections propiedad), un identificador para el punto de conexión (para obtener más información consulte el ID propiedad) y el tipo de punto de conexión que el consumidor utiliza (para obtener más información, consulte el ConnectionPointType propiedad). Las cuatro sobrecargas del constructor para la ConnectionConsumerAttribute clase cada tiene parámetros que permiten especificar valores para una o varias de estas propiedades de punto de conexión cuando se crea una nueva instancia de la clase. La mayoría de las propiedades de un punto de conexión del consumidor también puede establecerse mediante programación; establecerlas usando el ConnectionConsumerAttribute elemento es opcional.

System_CAPS_noteNota

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 especificarse siempre es el displayName parámetro (para obtener más información, consulte el ConnectionConsumerAttribute(String) sobrecarga de constructor). El valor de este parámetro se asigna a la DisplayName propiedad, y cuando un usuario abre la interfaz de usuario de conexión (creado por el ConnectionsZone control), el nombre para mostrar representa el punto de conexión del consumidor en la interfaz de usuario. Si se designan varios métodos de devolución de llamada en un control consumidor, tendrá varios puntos de conexión posibles para elegir y al agregar el ConnectionConsumerAttribute elemento de metadatos para cada método de devolución de llamada, también debe especificar un valor para el id parámetro, por lo que cada consumidor punto de conexión tiene un identificador único conocido.

En el ejemplo de código siguiente se muestra cómo utilizar el ConnectionConsumerAttribute clase mostrándole cómo declarar el ConnectionConsumerAttribute elemento de metadatos de un método de devolución de llamada en un control consumidor. Tenga en cuenta que se usa la sobrecarga más sencilla del constructor; sólo el displayName se suministra el valor del parámetro.

      [ConnectionConsumer("Row")]
      public void SetConnectionInterface(IWebPartRow provider) 
{
          _provider = provider;
      }

Ejemplos de código siguientes muestran cómo crear una conexión estática básica entre dos controles de elementos Web mediante la WebPartConnection clase. En la carpeta App_Code bajo la carpeta de aplicación que contiene la página .aspx, se deben colocar los archivos de código de proveedor y el consumidor.

El primer ejemplo muestra una clase que actúa como proveedor.

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);
		}
    }
}

El segundo ejemplo muestra una clase que actúa como consumidor. Observe que un método se designa como el método de devolución de llamada con el ConnectionConsumerAttribute elemento de metadatos.

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;
        }
         }

    }
//}

El último ejemplo muestra la página ASP.NET que contiene los dos controles.

<%@ 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>

.NET Framework
Disponible desde 2.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: