Partager via


FeatureConnector<TFeatureProviderType>, classe

Fournit une implémentation de base pour toute l'extensibilité de connecteur de fonctionnalités.

Hiérarchie d'héritage

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

Espace de noms :  Microsoft.Windows.Design.Features
Assembly :  Microsoft.Windows.Design.Extensibility (dans Microsoft.Windows.Design.Extensibility.dll)

Syntaxe

'Déclaration
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 ne prend pas en charge les types ou les méthodes génériques.

Paramètres de type

  • TFeatureProviderType
    Type de fournisseur de fonctionnalités.

Le type FeatureConnector<TFeatureProviderType> expose les membres suivants.

Constructeurs

  Nom Description
Méthode protégée FeatureConnector<TFeatureProviderType> Initialise une nouvelle instance de la classe FeatureConnector<TFeatureProviderType>.

Début

Propriétés

  Nom Description
Propriété protégée Context Obtient le contexte d'édition du connecteur de fonctionnalités.
Propriété protégée Manager Obtient FeatureManager pour le connecteur de fonctionnalités.

Début

Méthodes

  Nom Description
Méthode protégée CreateFeatureProviders(Type) Crée une nouvelle liste de fournisseurs de fonctionnalités associés au connecteur de fonctionnalités, en fonction du type spécifié.
Méthode protégée CreateFeatureProviders<TSubtype>(Type) Crée une nouvelle liste de fournisseurs de fonctionnalités associés au connecteur de fonctionnalités, en fonction du type et du sous-type spécifié.
Méthode publique Dispose() Libère toutes les ressources utilisées par FeatureConnector<TFeatureProviderType>.
Méthode protégée Dispose(Boolean) Libère les ressources non managées utilisées par FeatureConnector<TFeatureProviderType> et libère éventuellement les ressources managées.
Méthode publique Equals Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Substitue Object.Finalize().)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Notes

Dérivez de la classe FeatureConnector<TFeatureProviderType> abstraite lorsque vous devez implémenter le niveau le plus profond d'intégration avec le Concepteur WPF. Les connecteurs de fonctionnalités peuvent s'abonner aux services globaux et peuvent ajouter leurs propres services.

Les fournisseurs de fonctionnalités utilisent FeatureConnectorAttribute pour spécifier le connecteur de fonctionnalités associé.

La classe de base FeatureConnector<TFeatureProviderType> est générique et utilise le type du fournisseur de fonctionnalités hébergé par FeatureConnector<TFeatureProviderType>.

Les connecteurs de fonctionnalités sont créés sur demande. Lorsque la classe FeatureManager découvre un FeatureConnectorAttribute sur un FeatureProvider, elle crée le FeatureConnector<TFeatureProviderType> spécifié s'il n'existe encore.

La classe FeatureConnector<TFeatureProviderType> abstraite implémente l'interface IDisposable qui encourage une implémentation de nettoyage simple.

La plupart des fonctionnalités de la classe FeatureConnector<TFeatureProviderType> sont implémentées dans les méthodes CreateFeatureProviders protégées. Lorsqu'un objet est passé à cette méthode, le connecteur de fonctionnalités recherche les types FeatureAttribute dans l'objet. Si ces attributs sont identifiés, l'instance de FeatureProvider associée à chaque attribut est créée et retournée dans une liste.

Exemples

L'exemple de code suivant indique comment dériver de la classe FeatureConnector<TFeatureProviderType> pour connecter un fournisseur de fonctionnalités personnalisé nommé DiagnosticsMenuProvider avec un service personnalisé nommé IDiagnosticsService. Pour obtenir l'intégralité du code, consultez Comment : créer un connecteur de fonctionnalités personnalisé.

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.Windows.Design.Features, espace de noms

FeatureManager

FeatureProvider

FeatureConnectorAttribute

Autres ressources

Comment : créer un connecteur de fonctionnalités personnalisé

Fournisseurs de fonctionnalités et connecteurs de fonctionnalités

Fonctionnement de l'extensibilité du Concepteur WPF