.NET Framework Class Library
WebPartTransformerAttribute Class

Identifies the types of connection points that a transformer supports.

Inheritance Hierarchy
SystemObject
   SystemAttribute
    System.Web.UI.WebControls.WebPartsWebPartTransformerAttribute

Namespace:   System.Web.UI.WebControls.WebParts
Assembly:  System.Web (in System.Web.dll)
Syntax
<[%$TOPIC/ms157681_en-us_VS_110_2_0_0_0_0%]([%$TOPIC/ms157681_en-us_VS_110_2_0_0_0_1%].Class)> _
Public NotInheritable Class WebPartTransformerAttribute _
	Inherits [%$TOPIC/ms157681_en-us_VS_110_2_0_0_0_2%]
[[%$TOPIC/ms157681_en-us_VS_110_2_0_1_0_0%]([%$TOPIC/ms157681_en-us_VS_110_2_0_1_0_1%].Class)]
public sealed class WebPartTransformerAttribute : [%$TOPIC/ms157681_en-us_VS_110_2_0_1_0_2%]
[[%$TOPIC/ms157681_en-us_VS_110_2_0_2_0_0%]([%$TOPIC/ms157681_en-us_VS_110_2_0_2_0_1%]::Class)]
public ref class WebPartTransformerAttribute sealed : public [%$TOPIC/ms157681_en-us_VS_110_2_0_2_0_2%]
[<[%$TOPIC/ms157681_en-us_VS_110_2_0_3_0_0%]>]
[<[%$TOPIC/ms157681_en-us_VS_110_2_0_3_0_1%]([%$TOPIC/ms157681_en-us_VS_110_2_0_3_0_2%].Class)>]
type WebPartTransformerAttribute =  
    class 
        inherit [%$TOPIC/ms157681_en-us_VS_110_2_0_3_0_3%] 
    end

The WebPartTransformerAttribute type exposes the following members.

Constructors
  NameDescription
Public method WebPartTransformerAttributeInitializes a new instance of the WebPartTransformerAttribute class.
Top
Properties
  NameDescription
Public property ConsumerTypeGets the Type of the interface supported by the consumer connection point.
Public property ProviderTypeGets the Type of the interface supported by the provider connection point.
Public property TypeIdWhen implemented in a derived class, gets a unique identifier for this Attribute. (Inherited from Attribute.)
Top
Methods
  NameDescription
Public method EqualsInfrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.)
Public method Static member GetConsumerTypeReturns the consumer type a transformer can accept on a connection point.
Public method GetHashCodeReturns the hash code for this instance. (Inherited from Attribute.)
Public method Static member GetProviderTypeReturns the provider type a transformer can accept on a connection point.
Public method GetTypeGets the Type of the current instance. (Inherited from Object.)
Public method IsDefaultAttributeWhen overridden in a derived class, indicates whether the value of this instance is the default value for the derived class. (Inherited from Attribute.)
Public method MatchWhen overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)
Public method ToStringReturns a string that represents the current object. (Inherited from Object.)
Top
Explicit Interface Implementations
  NameDescription
Explicit interface implemetation Private method _AttributeGetIDsOfNamesMaps a set of names to a corresponding set of dispatch identifiers. (Inherited from Attribute.)
Explicit interface implemetation Private method _AttributeGetTypeInfoRetrieves the type information for an object, which can be used to get the type information for an interface. (Inherited from Attribute.)
Explicit interface implemetation Private method _AttributeGetTypeInfoCountRetrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from Attribute.)
Explicit interface implemetation Private method _AttributeInvokeProvides access to properties and methods exposed by an object. (Inherited from Attribute.)
Top
Remarks

Transformers are used to translate data between two Web Parts controls with incompatible connection points. Connection points are incompatible when they provide or consume data through different interfaces. For example, a provider implementing a provider connection point of type IWebPartRow could not directly connect to a consumer expecting a provider connection point of type IWebPartTable. Instead, a transformer must be used to connect the two connection points. A customized transformer can be created by deriving a class from the WebPartTransformer class.

The WebPartTransformerAttribute attribute is applied to a WebPartTransformer class. It defines the type of provider connection point and the type of consumer connection point that a transformer supports. The type of consumer and provider connection points supported by the transformer must match the connection points of the consumer and provider Web Parts controls for a connection to be made between the controls. At run time, the type of connection points that a particular transformer supports can be retrieved through the GetConsumerType and GetProviderType methods.

Examples

The following code example demonstrates the use of a WebPartTransformerAttribute attribute with a customized WebPartTransformer class. The attribute indicates that the RowToStringTransformer class can transform a provider connection point of type IWebPartRow to a consumer connection point of type IString.

This code example is part of a larger example found in the WebPartTransformer class overview.

' 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
// 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);
        }
    }
}
Version Information

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0
Platforms

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.