Classe FeatureConnector<TFeatureProviderType>

Fornisce un'implementazione di base per tutta l'estensibilità basata su connettori di funzionalità.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.Windows.Design.Features
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Sintassi

'Dichiarazione
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 non supporta i tipi o i metodi generici.

Parametri di tipo

  • TFeatureProviderType
    Tipo di provider di funzionalità.

Il tipo FeatureConnector<TFeatureProviderType> espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo protetto FeatureConnector<TFeatureProviderType> Inizializza una nuova istanza della classe FeatureConnector<TFeatureProviderType>.

In alto

Proprietà

  Nome Descrizione
Proprietà protetta. Context Ottiene il contesto di modifica per il connettore di funzionalità.
Proprietà protetta. Manager Ottiene FeatureManager per il connettore di funzionalità.

In alto

Metodi

  Nome Descrizione
Metodo protetto CreateFeatureProviders(Type) Crea un nuovo elenco di provider di funzionalità associati al connettore di funzionalità, in base al tipo specificato.
Metodo protetto CreateFeatureProviders<TSubtype>(Type) Crea un nuovo elenco di provider di funzionalità associati al connettore di funzionalità, in base al tipo e al sottotipo specificati.
Metodo pubblico Dispose() Rilascia tutte le risorse utilizzate da FeatureConnector<TFeatureProviderType>.
Metodo protetto Dispose(Boolean) Rilascia le risorse non gestite utilizzate dall'oggetto FeatureConnector<TFeatureProviderType> ed eventualmente rilascia le risorse gestite.
Metodo pubblico Equals Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Esegue l'override di Object.Finalize()).
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Note

Derivare dalla classe FeatureConnector<TFeatureProviderType> astratta quando è necessario implementare il livello più avanzato di integrazione con WPF Designer. I connettori di funzionalità possono sottoscrivere servizi globali e possono aggiungere i propri servizi.

I provider di funzionalità utilizzano FeatureConnectorAttribute per specificare il connettore di funzionalità associato.

La classe di base FeatureConnector<TFeatureProviderType> è generica e utilizza il tipo del provider di funzionalità ospitato da FeatureConnector<TFeatureProviderType>.

I connettori di funzionalità vengono creati su richiesta. Quando la classe FeatureManager individua FeatureConnectorAttribute in FeatureProvider, crea l'oggetto FeatureConnector<TFeatureProviderType> specificato, se non esiste già.

La classe FeatureConnector<TFeatureProviderType> astratta implementa l'interfaccia IDisposable, che promuove una semplice implementazione di pulizia.

La maggior parte della funzionalità della classe FeatureConnector<TFeatureProviderType> è implementata nei metodi CreateFeatureProviders protetti. Se viene passato un oggetto in questo metodo, il connettore di funzionalità ricerca i tipi FeatureAttribute sull'oggetto. Se questi attributi vengono trovati, viene creata l'istanza di FeatureProvider associata a ogni attributo, che viene restituita in un elenco.

Esempi

Nell'esempio di codice seguente viene illustrato come derivare dalla classe FeatureConnector<TFeatureProviderType> per connettere un provider di funzionalità personalizzato denominato DiagnosticsMenuProvider a un servizio personalizzato denominato IDiagnosticsService. Per l'elenco di codice completo, vedere Procedura: creare un connettore di funzionalità personalizzato.

' 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
}

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.Windows.Design.Features

FeatureManager

FeatureProvider

FeatureConnectorAttribute

Altre risorse

Procedura: creare un connettore di funzionalità personalizzato

Provider di funzionalità e connettori di funzionalità

Informazioni sull'estensibilità Progettazione WPF