Aracılığıyla paylaş


WebPartTransformer Sınıf

Tanım

Transformatör sınıflarının iki uyumsuz bağlantı noktası arasında veri dönüştürmesi için temel uygulama sağlar.

public ref class WebPartTransformer abstract
public abstract class WebPartTransformer
type WebPartTransformer = class
Public MustInherit Class WebPartTransformer
Devralma
WebPartTransformer
Türetilmiş

Örnekler

Aşağıdaki kod örneği, sınıfından WebPartTransformer türetilen özelleştirilmiş bir transformatörün nasıl oluşturulacağını gösterir. adlı RowToStringTransformertransformatör, uyumsuz bağlantı noktalarına sahip bir Web Bölümleri sağlayıcısının ve Web Bölümleri tüketicisinin bağlanmasına olanak tanır. Sağlayıcı türündeki IWebPartRowverileri sunar, ancak tüketici yalnızca türünde Stringverileri kabul eder. RowToStringTransformer sınıfı gerekli dönüştürmeyi gerçekleştirir.

Kod örneği sağlayıcının veya tüketicinin uygulamasını içermez. Arabirimi uygulayan IWebPartRow bir sağlayıcı ve örneğin çalışması için adlı IString özelleştirilmiş bir arabirim aracılığıyla veri bekleyen bir tüketici oluşturmanız gerekir.

// An interface that the transformer provides to the consumer.
[AspNetHostingPermission(SecurityAction.Demand,
  Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
  Level = AspNetHostingPermissionLevel.Minimal)]
public interface IString
{
    void GetStringValue(StringCallback callback);
}
' An interface that the transformer provides to the consumer.
<AspNetHostingPermission(SecurityAction.Demand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Interface IString
    Sub GetStringValue(ByVal callback As StringCallback)
End Interface

Kod örneğinin ilk bölümünde sağlayıcı ve tüketici Web Bölümleri denetimleri için kod ve transformatör için kod bulunur.

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

Kod örneğinin ikinci bölümünde, bir WebPartConnection nesnenin bildirim temelli söz dizimine transformatör ekleme işlemi gösterilmektedir.

<%@ Page language="c#" trace="false" debug="true" %> 
<%@ register tagprefix="uc1" 
    tagname="DisplayModeMenuCS" 
    src="~/displaymodemenucs.ascx" %>
<%@ Register TagPrefix="wp" 
    NameSpace="Samples.AspNet.CS.Controls" %>

<script runat="server">

</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Web Parts Transformer Sample Page</title>
</head>
<body>
<form id="Form1" runat="server">

<asp:webpartmanager id="manager" runat="server">
  <staticconnections>
    <asp:webpartconnection id="conn1" providerid="p1" consumerid="c1">
      <wp:rowtostringtransformer />
    </asp:webpartconnection>
  </staticconnections>
</asp:webpartmanager>
<uc1:displaymodemenucs id="menu1" runat="server" />

<table>
<tr valign="top">
  <td>
  <asp:webpartzone id="zone1" headertext="zone1" runat="server">
    <zonetemplate>
      <wp:rowproviderwebpart id="p1" runat="server" />
      <wp:stringconsumerwebpart id="c1" runat="server" />
    </zonetemplate>
  </asp:webpartzone>
  </td>
  <td>
  <asp:connectionszone id="connectionszone1" runat="server" />
  </td>
</tr>
</table>

</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ register tagprefix="uc1" 
    tagname="DisplayModeMenuVB" 
    src="~/displaymodemenuvb.ascx" %>
<%@ Register TagPrefix="wp" 
    NameSpace="Samples.AspNet.VB.Controls" %>

<script runat="server">

</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Web Parts Transformers Sample Page</title>
</head>
<body>
<form id="Form1" runat="server">

<asp:webpartmanager id="manager" runat="server">
  <staticconnections>
    <asp:webpartconnection id="conn1" providerid="p1" consumerid="c1">
      <wp:rowtostringtransformer />
    </asp:webpartconnection>
  </staticconnections>
</asp:webpartmanager>
<uc1:displaymodemenuvb id="menu1" runat="server" />

<table>
<tr valign="top">
  <td>
  <asp:webpartzone id="zone1" headertext="zone1" runat="server">
    <zonetemplate>
      <wp:rowproviderwebpart id="p1" runat="server" />
      <wp:stringconsumerwebpart id="c1" runat="server" />
    </zonetemplate>
  </asp:webpartzone>
  </td>
  <td>
  <asp:connectionszone id="connectionszone1" runat="server" />
  </td>
</tr>
</table>

</form>
</body>
</html>

Web sayfasında kullanılabilecek Web.config dosyasının bölümünde özelleştirilmiş bir transformatör belirtilmelidir <transformers> . Kod örneğinin üçüncü bölümünde özelleştirilmiş transformatörünün Web.config dosyasına nasıl ekleneceği gösterilmektedir.

<webParts enableExport="true">  
    <transformers>  
       <add name="RowToStringTransformer"  
          type="Samples.AspNet.VB.Controls.RowToStringTransformer" />  
    </transformers>  
</webParts>  
<webParts enableExport="true">  
    <transformers>  
       <add name="RowToStringTransformer"  
          type="Samples.AspNet.CS.Controls.RowToStringTransformer" />  
    </transformers>  
</webParts>  

Kod örneği, Web Bölümleri sayfasındaki görüntüleme modlarını değiştirmenize olanak tanıyan bir kullanıcı denetimi içerir. Kullanıcı denetiminin kaynak kodu başka bir konudan gelir. Kullanıcı denetimi için .ascx dosyasını İzlenecek Yol: Web Bölümleri Sayfasında Görüntüleme Modlarını Değiştirme bölümünden edinebilirsiniz ve .aspx sayfasıyla aynı klasöre yerleştirilmelidir.

Açıklamalar

Transformatörler, uyumsuz bağlantı noktalarına sahip iki Web Bölümü 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 Web Bölümü denetimini bağlamak için bir transformatör kullanılmalıdır.

Transformatör, sağlayıcı bağlantı noktası tarafından desteklenen türde verileri kabul eder. Bu verileri tüketici bağlantı noktası tarafından desteklenen türe dönüştürmek için gerekli iç işlemeyi yapar.

Transformatör, bağlantı modundayken kullanıcının transformatörünü yapılandırmasına olanak tanıyan bir kullanıcı arabirimi (UI) sağlayabilir. Yapılandırma denetimi yöntemi aracılığıyla CreateConfigurationControl alınır ve Bir Web Bölümleri bağlantı bölgesinde görüntülenir.

WebPartTransformer soyut bir sınıftır ve farklı bağlantı noktası türleri arasında özelleştirilmiş çeviriler sağlamak için genişletilmelidir.

Uygulayanlara Notlar

yöntemini geçersiz kılmanız Transform(Object) gerekir.

Oluşturucular

WebPartTransformer()

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

Yöntemler

CreateConfigurationControl()

Bölgedeki bir transformatörü ConnectionsZone yapılandıran bir ASP.NET denetimi görüntüler.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

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

Varsayılan karma işlevi işlevi görür.

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

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

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

yöntemiyle SaveConfigurationState() kaydedilen yapılandırma durumunu yükler.

MemberwiseClone()

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

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

Kullanıcı tarafından ayarlanan yapılandırma durumunu ASP.NET yapılandırma denetimine kaydeder.

ToString()

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

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

Uygulandığında, verileri dönüştürmek için bir nesne sağlar.

Şunlara uygulanır