WebPartTransformerAttribute Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Identifies the types of connection points that a transformer supports.

Namespace:   System.Web.UI.WebControls.WebParts
Assembly:  System.Web (in System.Web.dll)


public sealed class WebPartTransformerAttribute : Attribute

System_CAPS_pubmethodWebPartTransformerAttribute(Type, Type)

Initializes a new instance of the WebPartTransformerAttribute class.


Gets the Type of the interface supported by the consumer connection point.


Gets the Type of the interface supported by the provider connection point.


When implemented in a derived class, gets a unique identifier for this Attribute.(Inherited from Attribute.)


This API supports the product infrastructure and is not intended to be used directly from your code. Returns a value that indicates whether this instance is equal to a specified object.(Inherited from Attribute.)


Returns the consumer type a transformer can accept on a connection point.


Returns the hash code for this instance.(Inherited from Attribute.)


Returns the provider type a transformer can accept on a connection point.


Gets the Type of the current instance.(Inherited from Object.)


When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.(Inherited from Attribute.)


When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.)


Returns a string that represents the current object.(Inherited from Object.)

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

Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.)


Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.)

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

Provides access to properties and methods exposed by an object.(Inherited from Attribute.)

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.

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.
  Level = AspNetHostingPermissionLevel.Minimal)]
  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);

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

.NET Framework
Available since 2.0

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

Return to top