Aracılığıyla paylaş


WebPartTransformerAttribute Sınıf

Tanım

Transformatörlerin desteklediği bağlantı noktası türlerini tanımlar.

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
Devralma
WebPartTransformerAttribute
Öznitelikler

Örnekler

Aşağıdaki kod örneği, özelleştirilmiş WebPartTransformer bir WebPartTransformerAttribute sınıfla özniteliğin kullanımını gösterir. özniteliği, sınıfının türündeki RowToStringTransformer bir sağlayıcı bağlantı noktasını türünde IWebPartRow bir tüketici bağlantı noktasına IStringdönüştürebileceğini gösterir.

Bu kod örneği, sınıfa genel bakış bölümünde WebPartTransformer bulunan daha büyük bir örneğin bir parçasıdır.

// 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

Açıklamalar

Transformatörler, uyumsuz bağlantı noktalarına sahip iki Web Bölümleri denetimi arasındaki verileri çevirmek için kullanılır. Bağlantı noktaları, farklı arabirimler aracılığıyla veri sağladığında veya tükettiğinde uyumsuz. Örneğin, sağlayıcı bağlantı noktası türü uygulayan bir sağlayıcı, türünde IWebPartRow bir sağlayıcı bağlantı noktası IWebPartTablebekleyen bir tüketiciye doğrudan bağlanamadı. Bunun yerine, iki bağlantı noktasını bağlamak için bir transformatör kullanılmalıdır. Sınıfından WebPartTransformer bir sınıf türetilerek özelleştirilmiş bir transformatör oluşturulabilir.

WebPartTransformerAttribute özniteliği bir WebPartTransformer sınıfa uygulanır. Sağlayıcı bağlantı noktasının türünü ve bir transformatör tarafından desteklenen tüketici bağlantı noktasının türünü tanımlar. Transformatör tarafından desteklenen tüketici ve sağlayıcı bağlantı noktalarının türü, denetimler arasında yapılacak bağlantı için tüketici ve sağlayıcı Web Bölümleri denetimlerinin bağlantı noktalarıyla eşleşmelidir. Çalışma zamanında, belirli bir transformatör tarafından desteklenen bağlantı noktalarının türü ve GetProviderType yöntemleri aracılığıyla GetConsumerType alınabilir.

Oluşturucular

WebPartTransformerAttribute(Type, Type)

WebPartTransformerAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

ConsumerType

Type Tüketici bağlantı noktası tarafından desteklenen arabirimin öğesini alır.

ProviderType

Type Sağlayıcı bağlantı noktası tarafından desteklenen arabirimin öğesini alır.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetConsumerType(Type)

Transformatörlerin bir bağlantı noktasında kabul edebildiği tüketici türünü döndürür.

GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetProviderType(Type)

Bağlantı noktasında transformatörlerin kabul edebildiği sağlayıcı türünü döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır