WebPartTransformerAttribute Clase

Definición

Identifica los tipos de puntos de conexión que admite un transformador.

public ref class WebPartTransformerAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class WebPartTransformerAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type WebPartTransformerAttribute = class
    inherit Attribute
Public NotInheritable Class WebPartTransformerAttribute
Inherits Attribute
Herencia
WebPartTransformerAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra el uso de un WebPartTransformerAttribute atributo con una clase personalizada WebPartTransformer . El atributo indica que la RowToStringTransformer clase puede transformar un punto de conexión de proveedor de tipo IWebPartRow en un punto de conexión de consumidor de tipo IString.

Este ejemplo de código forma parte de un ejemplo más grande que se encuentra en la información general de la WebPartTransformer clase.

// 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 transformer that transforms a row to a string.
<AspNetHostingPermission(SecurityAction.Demand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
<WebPartTransformer(GetType(IWebPartRow), GetType(IString))> _
Public Class RowToStringTransformer
    Inherits WebPartTransformer
    Implements IString

    Private _provider As IWebPartRow
    Private _callback As StringCallback

    Private Sub GetRowData(ByVal rowData As Object)
        Dim props As PropertyDescriptorCollection = _provider.Schema

        If ((Not (props Is Nothing)) AndAlso (props.Count > 0) _
          AndAlso (Not (rowData Is Nothing))) Then
            Dim returnValue As String = String.Empty
            For Each prop As PropertyDescriptor In props
                If Not (prop Is props(0)) Then
                    returnValue += ", "
                End If
                returnValue += prop.DisplayName.ToString() + ": " + _
                    prop.GetValue(rowData).ToString()
            Next
            _callback(returnValue)
        Else
            _callback(Nothing)
        End If
    End Sub

    Public Overrides Function Transform(ByVal providerData As Object) As Object
        _provider = CType(providerData, IWebPartRow)
        Return Me
    End Function


    Sub GetStringValue(ByVal callback As StringCallback) _
       Implements IString.GetStringValue
        If (callback Is Nothing) Then
            Throw New ArgumentNullException("callback")
        End If

        If (Not (_provider Is Nothing)) Then
            _callback = callback
            _provider.GetRowData(New RowCallback(AddressOf GetRowData))
        Else
            callback(Nothing)
        End If
    End Sub
End Class

Comentarios

Los transformadores se usan para traducir datos entre dos controles de elementos web con puntos de conexión incompatibles. Los puntos de conexión son incompatibles cuando proporcionan o consumen datos a través de interfaces diferentes. Por ejemplo, un proveedor que implementa un punto de conexión de proveedor de tipo IWebPartRow no pudo conectarse directamente a un consumidor que esperaba un punto de conexión de proveedor de tipo IWebPartTable. En su lugar, se debe usar un transformador para conectar los dos puntos de conexión. Un transformador personalizado se puede crear derivando una clase de la WebPartTransformer clase .

El WebPartTransformerAttribute atributo se aplica a una WebPartTransformer clase . Define el tipo de punto de conexión del proveedor y el tipo de punto de conexión de consumidor que admite un transformador. El tipo de puntos de conexión de consumidor y proveedor admitidos por el transformador debe coincidir con los puntos de conexión del consumidor y del proveedor elementos web controles para que se realice una conexión entre los controles. En tiempo de ejecución, el tipo de puntos de conexión que admite un transformador determinado se puede recuperar a través de los GetConsumerType métodos y GetProviderType .

Constructores

WebPartTransformerAttribute(Type, Type)

Inicializa una nueva instancia de la clase WebPartTransformerAttribute.

Propiedades

ConsumerType

Obtiene el tipo Type de la interfaz admitido por el punto de conexión del consumidor.

ProviderType

Obtiene el tipo Type de la interfaz admitido por el punto de conexión del proveedor.

TypeId

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

(Heredado de Attribute)

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetConsumerType(Type)

Devuelve el tipo de consumidor que un transformador puede aceptar en un punto de conexión.

GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetProviderType(Type)

Devuelve el tipo de proveedor que un transformador puede aceptar en un punto de conexión.

GetType()

Obtiene el Type de la instancia actual.

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

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

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

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

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

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 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.

(Heredado de Attribute)

Se aplica a