Classe FeatureManager

Gestisce i provider di funzionalità e i connettori di funzionalità.

Gerarchia di ereditarietà

System.Object
  Microsoft.Windows.Design.Features.FeatureManager

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

Sintassi

'Dichiarazione
Public Class FeatureManager _
    Implements IDisposable
public class FeatureManager : IDisposable
public ref class FeatureManager : IDisposable
type FeatureManager =  
    class
        interface IDisposable
    end
public class FeatureManager implements IDisposable

Il tipo FeatureManager espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico FeatureManager Inizializza una nuova istanza della classe FeatureManager.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica Context Ottiene il contesto di modifica per il gestore di funzionalità.
Proprietà pubblica MetadataProvider Ottiene o imposta un provider di metadati personalizzato che può fornire metadati del tipo per questo gestore di funzionalità.
Proprietà pubblica PendingConnectors Ottiene un'enumerazione di tutti i connettori che non sono ancora stati attivati perché sono in attesa di elementi di contesto o servizi.
Proprietà pubblica RunningConnectors Ottiene un'enumerazione di tutti i connettori attualmente in esecuzione.

In alto

Metodi

  Nome Descrizione
Metodo pubblico CreateFeatureProviders(Type) Crea e restituisce un set di provider di funzionalità per il tipo specificato.
Metodo pubblico CreateFeatureProviders(Type, Predicate<Type>) Crea e restituisce un set di provider di funzionalità per il tipo specificato.
Metodo pubblico CreateFeatureProviders(Type, Type) Crea e restituisce un set di provider di funzionalità esistenti per il tipo specificato.
Metodo pubblico CreateFeatureProviders(Type, Type, Predicate<Type>) Crea e restituisce un set di provider di funzionalità esistenti per il tipo specificato.
Metodo pubblico Dispose() Rilascia tutte le risorse utilizzate dall'oggetto FeatureManager.
Metodo protetto Dispose(Boolean) Elimina tutti i connettori di funzionalità in esecuzione.
Metodo pubblico Equals Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Finalizzatore che chiama Dispose. (Esegue l'override di Object.Finalize()).
Metodo pubblico GetCustomAttributes Enumera gli attributi nel tipo specificato.
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 pubblico InitializeFeatures Inizializza i connettori di funzionalità per i provider di funzionalità definiti sul tipo specificato.
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto OnFeatureAvailable Genera l'evento FeatureAvailable.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Eventi

  Nome Descrizione
Evento pubblico FeatureAvailable Si verifica quando è disponibile un nuovo tipo di funzionalità.

In alto

Metodi di estensione

  Nome Descrizione
Metodo di estensione pubblico CreateFeatureProviders(Type, ModelItem) Sottoposto a overload. Crea provider di funzionalità del tipo e dell'elemento del modello specificati. (Definito da FeatureExtensions).
Metodo di estensione pubblico CreateFeatureProviders(Type, ModelItem, Predicate<Type>) Sottoposto a overload. Crea provider di funzionalità del tipo e dell'elemento del modello specificati. (Definito da FeatureExtensions).

In alto

Note

Utilizzare la classe FeatureManager per creare provider di funzionalità ed eseguire query per i connettori di funzionalità in esecuzione e in sospeso.

Se è necessario creare un'istanza di un connettore di funzionalità che tuttavia ha sottoscritto servizi o elementi di contesto che non esistono ancora, il tipo di connettore viene inserito in un elenco di elementi in sospeso e le sottoscrizioni vengono aggiunte al contesto di modifica. Quando i servizi e gli elementi corretti diventano disponibili, viene creata un'istanza del connettore di funzionalità.

Quando un oggetto viene aggiunto a un modello di modifica, il modello di modifica deve chiamare il metodo InitializeFeatures sul gestore di funzionalità, che controlla l'oggetto per individuare attributi di funzionalità. Inserisce questi attributi dopo gli attributi FeatureConnector<TFeatureProviderType> e verifica che sia stata creata un'istanza di tutti i connettori univoci.

Esempi

Nell'esempio di codice seguente viene illustrato come utilizzare la classe FeatureManager per accedere ai connettori in esecuzione e in sospeso. Per l'elenco di codice completo, vedere Procedura: creare un connettore di funzionalità personalizzato.

Public Sub Initialize(ByVal manager As FeatureManager)
    featManager = manager
    Bind()
End Sub


...


' Binds the activatedFeatures and pendingFeatures controls
' the FeatureManager's RunningConnectors and PendingConnectors\
' properties.
Private Sub Bind()
    activatedFeatures.Items.Clear()
    pendingFeatures.Items.Clear()

    Dim info As FeatureConnectorInformation
    For Each info In featManager.RunningConnectors
        activatedFeatures.Items.Add(info)
    Next info

    For Each info In featManager.PendingConnectors
        pendingFeatures.Items.Add(info)
    Next info

End Sub
public void Initialize(FeatureManager manager) 
{
    featManager = manager;
    Bind();
}


...


// Binds the activatedFeatures and pendingFeatures controls
// the FeatureManager's RunningConnectors and PendingConnectors\
// properties.
private void Bind() 
{
    activatedFeatures.Items.Clear();
    pendingFeatures.Items.Clear();

    foreach (FeatureConnectorInformation info in 
        featManager.RunningConnectors) 
    {
        activatedFeatures.Items.Add(info);
    }

    foreach (FeatureConnectorInformation info in 
        featManager.PendingConnectors) 
    {
        pendingFeatures.Items.Add(info);
    }
}

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

FeatureProvider

FeatureConnector<TFeatureProviderType>

Altre risorse

Procedura: creare un connettore di funzionalità personalizzato

Provider di funzionalità e connettori di funzionalità

Informazioni sull'estensibilità Progettazione WPF