WebPartTransformer Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ı RowToStringTransformer
transformatö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. |