Share via


FeatureConnector<TFeatureProviderType> (Clase)

Proporciona una implementación base para toda la extensibilidad basada en el conector de características.

Jerarquía de herencia

System.Object
  Microsoft.Windows.Design.Features.FeatureConnector<TFeatureProviderType>
    Microsoft.Windows.Design.Policies.PolicyDrivenFeatureConnector<TFeatureProviderType>

Espacio de nombres:  Microsoft.Windows.Design.Features
Ensamblado:  Microsoft.Windows.Design.Extensibility (en Microsoft.Windows.Design.Extensibility.dll)

Sintaxis

'Declaración
Public MustInherit Class FeatureConnector(Of TFeatureProviderType As FeatureProvider) _
    Implements IDisposable
public abstract class FeatureConnector<TFeatureProviderType> : IDisposable
where TFeatureProviderType : FeatureProvider
generic<typename TFeatureProviderType>
where TFeatureProviderType : FeatureProvider
public ref class FeatureConnector abstract : IDisposable
[<AbstractClass>]
type FeatureConnector<'TFeatureProviderType when 'TFeatureProviderType : FeatureProvider> =  
    class
        interface IDisposable
    end
JScript no admite el uso de métodos ni tipos genéricos.

Parámetros de tipo

  • TFeatureProviderType
    Tipo de proveedor de características.

El tipo FeatureConnector<TFeatureProviderType> expone los siguientes miembros.

Constructores

  Nombre Descripción
Método protegido FeatureConnector<TFeatureProviderType> Inicializa una nueva instancia de la clase FeatureConnector<TFeatureProviderType>.

Arriba

Propiedades

  Nombre Descripción
Propiedad protegida Context Obtiene el contexto de edición para el conector de características.
Propiedad protegida Manager Obtiene FeatureManager para el conector de características.

Arriba

Métodos

  Nombre Descripción
Método protegido CreateFeatureProviders(Type) Crea una nueva lista de proveedores de características asociada al conector de características, según el objeto tipo proporcionado.
Método protegido CreateFeatureProviders<TSubtype>(Type) Crea una nueva lista de proveedores de características asociada al conector de características, según el objeto tipo y el subtipo proporcionados.
Método público Dispose() Libera todos los recursos utilizados por el objeto FeatureConnector<TFeatureProviderType>.
Método protegido Dispose(Boolean) Libera los recursos no administrados usados por FeatureConnector<TFeatureProviderType> y, opcionalmente, los recursos administrados.
Método público Equals Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Invalida a Object.Finalize()).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

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 usa el tipo de proveedor de características que FeatureConnector<TFeatureProviderType> hospeda.

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 los métodos protegidos CreateFeatureProviders. Pasar un objeto a este método hace que el conector de características busque los tipos FeatureAttribute en el objeto. Si se encuentran 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
}

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

Microsoft.Windows.Design.Features (Espacio de nombres)

FeatureManager

FeatureProvider

FeatureConnectorAttribute

Otros recursos

Cómo: Crear un conector de características personalizado

Proveedores de características y conectores de características

Introducción a la extensibilidad de WPF Designer