次の方法で共有


WebPartTransformerAttribute クラス

定義

トランスフォーマーがサポートするコネクション ポイントの型を識別します。

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
継承
WebPartTransformerAttribute
属性

次のコード例は、カスタマイズされたWebPartTransformerクラスで属性をWebPartTransformerAttribute使用する方法を示しています。 この属性は、クラスが型の RowToStringTransformer プロバイダー接続ポイントをコンシューマー IWebPartRow 接続ポイントに変換できることを示します IString

このコード例は、クラスの概要で見られるより大きな例の 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

注釈

トランスフォーマーは、互換性のない接続ポイントを持つ 2 つのWeb パーツ コントロール間でデータを変換するために使用されます。 接続ポイントは、異なるインターフェイスを介してデータを提供または使用する場合、互換性がありません。 たとえば、型のプロバイダー接続ポイントを実装するプロバイダーは、型 IWebPartRow のプロバイダー接続ポイント IWebPartTableを想定しているコンシューマーに直接接続できませんでした。 代わりに、トランスフォーマーを使用して 2 つの接続ポイントを接続する必要があります。 カスタマイズされたトランスフォーマーは、クラスから WebPartTransformer クラスを派生させることによって作成できます。

属性は WebPartTransformerAttribute クラスに WebPartTransformer 適用されます。 プロバイダー接続ポイントの種類と、トランスフォーマーがサポートするコンシューマー接続ポイントの種類を定義します。 トランスフォーマーでサポートされるコンシューマー接続ポイントとプロバイダー接続ポイントの種類は、コンシューマーコントロールとプロバイダー Web パーツコントロールの接続ポイントと一致して、コントロール間で接続する必要があります。 実行時に、特定のトランスフォーマーがサポートする接続ポイントの種類は、and GetProviderType メソッドをGetConsumerType介して取得できます。

コンストラクター

WebPartTransformerAttribute(Type, Type)

WebPartTransformerAttribute クラスの新しいインスタンスを初期化します。

プロパティ

ConsumerType

コンシューマー接続ポイントでサポートされているインターフェイスの Type を取得します。

ProviderType

プロバイダー コネクション ポイントでサポートされているインターフェイスの Type を取得します。

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。

(継承元 Attribute)

メソッド

Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。

(継承元 Attribute)
GetConsumerType(Type)

コネクション ポイントでトランスフォーマーが受け入れることができるコンシューマーの型を返します。

GetHashCode()

このインスタンスのハッシュ コードを返します。

(継承元 Attribute)
GetProviderType(Type)

コネクション ポイントでトランスフォーマーが受け入れることができるプロバイダーの型を返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。

(継承元 Attribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象