FeatureConnector<TFeatureProviderType> (Clase)
Actualización: noviembre 2007
Proporciona una implementación base para toda la extensibilidad basada en el conector de características.
Espacio de nombres: Microsoft.Windows.Design.Features
Ensamblado: Microsoft.Windows.Design.Extensibility (en Microsoft.Windows.Design.Extensibility.dll)
Sintaxis
Public MustInherit Class FeatureConnector(Of TFeatureProviderType As FeatureProvider) _
Implements IDisposable
Dim instance As FeatureConnector(Of TFeatureProviderType)
public abstract class FeatureConnector<TFeatureProviderType> : IDisposable
where TFeatureProviderType : FeatureProvider
generic<typename TFeatureProviderType>
where TFeatureProviderType : FeatureProvider
public ref class FeatureConnector abstract : IDisposable
JScript no admite el uso de métodos ni tipos genéricos.
Parámetros de tipo
- TFeatureProviderType
Tipo de proveedor de características.
Comentarios
Derive de la clase abstracta FeatureConnector<TFeatureProviderType> cuando necesite implementar el nivel más profundo de integración con WPF Designer. Los conectores de características pueden suscribirse a los servicios globales y agregar sus propios servicios.
Los proveedores de características utilizan FeatureConnectorAttribute para especificar el conector de características asociado.
La clase base FeatureConnector<TFeatureProviderType> es genérica y utiliza el tipo de proveedor de características que hospeda FeatureConnector<TFeatureProviderType>.
Los conectores de características se crean previa solicitud. Cuando la clase FeatureManager detecta FeatureConnectorAttribute en FeatureProvider, crea el FeatureConnector<TFeatureProviderType> especificado, si aún no existe.
La clase abstracta FeatureConnector<TFeatureProviderType> implementa la interfaz IDisposable, que favorece una implementación de limpieza sencilla.
La mayor parte de la funcionalidad de la clase FeatureConnector<TFeatureProviderType> se implementa en el método protegido CreateFeatureProviders. Pasar un objeto a este método hace que el conector de características busque los tipos FeatureAttribute en el objeto. Si se buscan estos atributos, la instancia de FeatureProvider asociada a cada atributo se crea y se devuelve en una lista.
Ejemplos
En el siguiente ejemplo de código se muestra cómo derivar de la clase FeatureConnector<TFeatureProviderType> para conectarse con un proveedor de características personalizado denominado DiagnosticsMenuProvider con un servicio personalizado denominado IDiagnosticsService. Para obtener una lista de código completa, vea Cómo: Crear un conector de características personalizado.
' The IDiagnosticsService specifies a simple interface for showing
' a FeatureManagerDiagnostics window.
Interface IDiagnosticsService
Sub ShowWindow()
End Interface
...
' The DiagnosticsFeatureConnector publishes the IDiagnosticsService.
Class DiagnosticsFeatureConnector
Inherits FeatureConnector(Of DiagnosticsMenuProvider)
Implements IDiagnosticsService
Dim fmdWindow As FeatureManagerDiagnostics
Public Sub New(ByVal manager As FeatureManager)
MyBase.New(manager)
Context.Services.Publish(Of IDiagnosticsService)(Me)
End Sub
' The showWindow method creates a FeatureManagerDiagnostics
' window and shows it.
Public Sub ShowWindow() Implements IDiagnosticsService.ShowWindow
If fmdWindow IsNot Nothing Then
' Show the FeatureManagerDiagnostics window.
fmdWindow.Show()
' Activate the
fmdWindow.Activate()
Else
fmdWindow = New FeatureManagerDiagnostics()
fmdWindow.Initialize(Manager)
AddHandler fmdWindow.Closed, AddressOf fmdWindow_Closed
fmdWindow.Show()
End If
End Sub
Sub fmdWindow_Closed(ByVal sender As Object, ByVal e As EventArgs)
fmdWindow = Nothing
End Sub
End Class
// The IDiagnosticsService specifies a simple interface for showing
// a FeatureManagerDiagnostics window.
interface IDiagnosticsService
{
void ShowWindow();
}
...
// The DiagnosticsFeatureConnector publishes the IDiagnosticsService.
class DiagnosticsFeatureConnector : FeatureConnector<DiagnosticsMenuProvider>,
IDiagnosticsService
{
FeatureManagerDiagnostics fmdWindow;
public DiagnosticsFeatureConnector(FeatureManager manager)
: base(manager)
{
Context.Services.Publish<IDiagnosticsService>(this);
}
#region IDiagnosticsService Members
// The showWindow method creates a FeatureManagerDiagnostics
// window and shows it.
public void ShowWindow()
{
if (fmdWindow != null)
{
fmdWindow.Show();
fmdWindow.Activate();
}
else
{
fmdWindow = new FeatureManagerDiagnostics();
fmdWindow.Initialize(Manager);
fmdWindow.Closed += new EventHandler(fmdWindow_Closed);
fmdWindow.Show();
}
}
void fmdWindow_Closed(object sender, EventArgs e)
{
fmdWindow = null;
}
#endregion
}
Jerarquía de herencia
System.Object
Microsoft.Windows.Design.Features.FeatureConnector<TFeatureProviderType>
Microsoft.Windows.Design.Features.PolicyDrivenFeatureConnector<TFeatureProviderType>
Seguridad para subprocesos
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también
Referencia
FeatureConnector<TFeatureProviderType> (Miembros)
Microsoft.Windows.Design.Features (Espacio de nombres)
Otros recursos
Cómo: Crear un conector de características personalizado
Proveedores de características y conectores de características