WebPartTransformerAttribute Klass

Definition

Identifierar de typer av anslutningspunkter som en transformator stöder.

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
Arv
WebPartTransformerAttribute
Attribut

Exempel

I följande kodexempel visas användningen av ett WebPartTransformerAttribute attribut med en anpassad WebPartTransformer klass. Attributet anger att RowToStringTransformer klassen kan omvandla en provideranslutningspunkt av typen IWebPartRow till en konsumentanslutningspunkt av typen IString.

Det här kodexemplet är en del av ett större exempel som finns i klassöversikten WebPartTransformer .

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

Kommentarer

Transformatorer används för att översätta data mellan två webbdelskontroller med inkompatibla anslutningspunkter. Anslutningspunkter är inkompatibla när de tillhandahåller eller använder data via olika gränssnitt. En provider som implementerar en leverantörsanslutningspunkt av typen IWebPartRow kunde till exempel inte ansluta direkt till en konsument som förväntar sig en leverantörsanslutningspunkt av typen IWebPartTable. I stället måste en transformator användas för att ansluta de två anslutningspunkterna. En anpassad transformerare kan skapas genom att härleda en klass från WebPartTransformer klassen.

Attributet WebPartTransformerAttribute tillämpas på en WebPartTransformer klass. Den definierar typen av provideranslutningspunkt och vilken typ av konsumentanslutningspunkt som en transformator stöder. Typen av konsument- och leverantörsanslutningspunkter som stöds av transformatorn måste matcha anslutningspunkterna för konsument- och providerwebbdelar-kontrollerna för att en anslutning ska kunna göras mellan kontrollerna. Vid körning kan den typ av anslutningspunkter som en viss transformator stöder hämtas via GetConsumerType metoderna och GetProviderType .

Konstruktorer

Name Description
WebPartTransformerAttribute(Type, Type)

Initierar en ny instans av WebPartTransformerAttribute klassen.

Egenskaper

Name Description
ConsumerType

Hämtar gränssnittet Type som stöds av konsumentanslutningspunkten.

ProviderType

Hämtar gränssnittet Type som stöds av provideranslutningspunkten.

TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetConsumerType(Type)

Returnerar den konsumenttyp som en transformerare kan acceptera på en anslutningspunkt.

GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetProviderType(Type)

Returnerar providertypen som en transformerare kan acceptera på en anslutningspunkt.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

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

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)

Gäller för