WebPartTransformerAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa typy punktów połączenia, które obsługuje transformator.
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
- Dziedziczenie
- Atrybuty
Przykłady
Poniższy przykład kodu przedstawia użycie atrybutu WebPartTransformerAttribute z dostosowaną WebPartTransformer klasą. Atrybut wskazuje, że RowToStringTransformer
klasa może przekształcić punkt połączenia dostawcy typu IWebPartRow
do punktu połączenia odbiorcy typu IString
.
Ten przykład kodu jest częścią większego przykładu znalezionego w przeglądzie WebPartTransformer klasy.
// 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
Uwagi
Transformatory służą do tłumaczenia danych między dwoma kontrolkami składniki Web Part z niezgodnymi punktami połączenia. Punkty połączenia są niezgodne, gdy udostępniają lub zużywają dane za pośrednictwem różnych interfejsów. Na przykład dostawca implementujący punkt połączenia dostawcy typu IWebPartRow nie może bezpośrednio nawiązać połączenia z użytkownikiem, który oczekuje punktu połączenia dostawcy typu IWebPartTable. Zamiast tego należy użyć transformatora w celu połączenia dwóch punktów połączenia. Dostosowany transformator można utworzyć, wyprowadzając klasę z WebPartTransformer klasy .
Atrybut WebPartTransformerAttribute jest stosowany do WebPartTransformer klasy. Definiuje typ punktu połączenia dostawcy i typ punktu połączenia odbiorcy obsługiwanego przez transformator. Typ punktów połączenia klienta i dostawcy obsługiwanych przez transformator musi być zgodny z punktami połączenia konsumenta i dostawcy składniki Web Part kontroli połączenia między kontrolkami. W czasie wykonywania typ punktów połączenia obsługiwanych przez określony transformator można pobrać za pośrednictwem GetConsumerType metod i GetProviderType .
Konstruktory
WebPartTransformerAttribute(Type, Type) |
Inicjuje nowe wystąpienie klasy WebPartTransformerAttribute. |
Właściwości
ConsumerType |
Type Pobiera interfejs obsługiwany przez punkt połączenia użytkownika. |
ProviderType |
Type Pobiera interfejs obsługiwany przez punkt połączenia dostawcy. |
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetConsumerType(Type) |
Zwraca typ odbiorcy, który transformator może zaakceptować w punkcie połączenia. |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetProviderType(Type) |
Zwraca typ dostawcy, który transformator może zaakceptować w punkcie połączenia. |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |