Udostępnij za pośrednictwem


WebPartTransformerAttribute Klasa

Definicja

Określa typy punktów połączenia, które obsługuje transformator.

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
Dziedziczenie
WebPartTransformerAttribute
Atrybuty

Przykłady

Poniższy przykład kodu przedstawia użycie atrybutu WebPartTransformerAttribute z dostosowaną WebPartTransformer klasą. Atrybut wskazuje, że RowToStringTransformer klasa może przekształcić punkt połączenia dostawcy typu IWebPartRow do punktu połączenia odbiorcy typu IString.

Ten przykład kodu jest częścią większego przykładu znalezionego w przeglądzie WebPartTransformer klasy.

// 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

Uwagi

Transformatory służą do tłumaczenia danych między dwoma kontrolkami składniki Web Part z niezgodnymi punktami połączenia. Punkty połączenia są niezgodne, gdy udostępniają lub zużywają dane za pośrednictwem różnych interfejsów. Na przykład dostawca implementujący punkt połączenia dostawcy typu IWebPartRow nie może bezpośrednio nawiązać połączenia z użytkownikiem, który oczekuje punktu połączenia dostawcy typu IWebPartTable. Zamiast tego należy użyć transformatora w celu połączenia dwóch punktów połączenia. Dostosowany transformator można utworzyć, wyprowadzając klasę z WebPartTransformer klasy .

Atrybut WebPartTransformerAttribute jest stosowany do WebPartTransformer klasy. Definiuje typ punktu połączenia dostawcy i typ punktu połączenia odbiorcy obsługiwanego przez transformator. Typ punktów połączenia klienta i dostawcy obsługiwanych przez transformator musi być zgodny z punktami połączenia konsumenta i dostawcy składniki Web Part kontroli połączenia między kontrolkami. W czasie wykonywania typ punktów połączenia obsługiwanych przez określony transformator można pobrać za pośrednictwem GetConsumerType metod i GetProviderType .

Konstruktory

WebPartTransformerAttribute(Type, Type)

Inicjuje nowe wystąpienie klasy WebPartTransformerAttribute.

Właściwości

ConsumerType

Type Pobiera interfejs obsługiwany przez punkt połączenia użytkownika.

ProviderType

Type Pobiera interfejs obsługiwany przez punkt połączenia dostawcy.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetConsumerType(Type)

Zwraca typ odbiorcy, który transformator może zaakceptować w punkcie połączenia.

GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetProviderType(Type)

Zwraca typ dostawcy, który transformator może zaakceptować w punkcie połączenia.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy