WebPartTransformerAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
トランスフォーマーがサポートするコネクション ポイントの型を識別します。
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
- 継承
- 属性
例
次のコード例は、カスタマイズされた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) |