Freigeben über


FeatureManager-Klasse

Verwaltet Featureanbieter und Featureverbindungen.

Vererbungshierarchie

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

Namespace:  Microsoft.Windows.Design.Features
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Syntax

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

Der FeatureManager-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode FeatureManager Initialisiert eine neue Instanz der FeatureManager-Klasse.

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft Context Ruft den Bearbeitungskontext für diesen Feature-Manager ab.
Öffentliche Eigenschaft MetadataProvider Ruft einen benutzerdefinierten Metadaten-Anbieter ab, der Typmetadaten für diesen Funktions-Manager bereitstellen kann, oder legt diesen fest.
Öffentliche Eigenschaft PendingConnectors Ruft eine Enumeration sämtlicher noch nicht aktivierter Verbindungen ab, die auf Kontextelemente oder Dienste warten.
Öffentliche Eigenschaft RunningConnectors Ruft eine Enumeration aller derzeit ausgeführten Verbindungen ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode CreateFeatureProviders(Type) Erstellt eine Reihe von Featureanbietern für den angegebenen Typ und gibt diese zurück.
Öffentliche Methode CreateFeatureProviders(Type, Predicate<Type>) Erstellt eine Reihe von Featureanbietern für den angegebenen Typ und gibt diese zurück.
Öffentliche Methode CreateFeatureProviders(Type, Type) Erstellt eine Reihe von Featureanbietern, die für den angegebenen Typ vorhanden sind, und gibt sie zurück.
Öffentliche Methode CreateFeatureProviders(Type, Type, Predicate<Type>) Erstellt eine Reihe von Featureanbietern, die für den angegebenen Typ vorhanden sind, und gibt sie zurück.
Öffentliche Methode Dispose() Gibt alle vom FeatureManager verwendeten Ressourcen frei.
Geschützte Methode Dispose(Boolean) Gibt alle ausgeführten Featureverbindungen frei.
Öffentliche Methode Equals Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Finalize Finalizer, der Dispose aufruft. (Überschreibt Object.Finalize().)
Öffentliche Methode GetCustomAttributes Listet Attribute für den angegebenen Typ auf.
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode InitializeFeatures Initialisiert alle Featureverbindungen der Featureanbieter, die auf dem angegebenen Typ definiert wurden.
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte Methode OnFeatureAvailable Löst das FeatureAvailable-Ereignis aus.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)

Zum Seitenanfang

Ereignisse

  Name Beschreibung
Öffentliches Ereignis FeatureAvailable Tritt auf, wenn ein neuer Featuretyp verfügbar ist.

Zum Seitenanfang

Erweiterungsmethoden

  Name Beschreibung
Öffentliche Erweiterungsmethode CreateFeatureProviders(Type, ModelItem) Überladen. Erstellt Funktionsanbieter mit dem angegebenen Typ und Modellelement. (Durch FeatureExtensions definiert.)
Öffentliche Erweiterungsmethode CreateFeatureProviders(Type, ModelItem, Predicate<Type>) Überladen. Erstellt Funktionsanbieter mit dem angegebenen Typ und Modellelement. (Durch FeatureExtensions definiert.)

Zum Seitenanfang

Hinweise

Verwenden Sie die FeatureManager-Klasse, um Featureanbieter zu erstellen und ausgeführte und ausstehende Featureverbindungen abzufragen.

Wenn eine Featureverbindung instanziiert werden muss, die noch nicht bestehende Dienste oder Kontextelemente abonniert, wird der Connectortyp als ausstehend in eine Liste eingetragen und dem Bearbeitungskontext werden Abonnements hinzugefügt. Wenn die richtigen Dienste und Elemente verfügbar werden, wird die Featureverbindung instanziiert.

Wenn einem Bearbeitungsmodell ein Objekt hinzugefügt wird, sollte das Bearbeitungsmodell die InitializeFeatures-Methode für den Feature-Manager aufrufen, die das Objekt auf Featureattribute untersucht. Sie folgt diesen Attributen zu FeatureConnector<TFeatureProviderType>-Attributen und stellt sicher, dass alle eindeutigen Verbindungen instanziiert wurden.

Beispiele

Im folgenden Beispielcode wird gezeigt, wie mit der FeatureManager-Klasse auf aktive und ausstehende Verbindungen zugegriffen wird. Die vollständige Codeliste finden Sie unter Gewusst wie: Erstellen einer benutzerdefinierten Featureverbindung.

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);
    }
}

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.Windows.Design.Features-Namespace

FeatureProvider

FeatureConnector<TFeatureProviderType>

Weitere Ressourcen

Gewusst wie: Erstellen einer benutzerdefinierten Featureverbindung

Featureanbieter und Featureverbindungen

WPF-Designer-Erweiterbarkeit