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 | |
---|---|---|
FeatureConnector<TFeatureProviderType> | Initialise une nouvelle instance de la classe FeatureConnector<TFeatureProviderType>. |
Début
Propriétés
Nom | Description | |
---|---|---|
Context | Obtient le contexte d'édition du connecteur de fonctionnalités. | |
Manager | Obtient FeatureManager pour le connecteur de fonctionnalités. |
Début
Méthodes
Nom | Description | |
---|---|---|
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é. | |
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é. | |
Dispose() | Libère toutes les ressources utilisées par FeatureConnector<TFeatureProviderType>. | |
Dispose(Boolean) | Libère les ressources non managées utilisées par FeatureConnector<TFeatureProviderType> et libère éventuellement les ressources managées. | |
Equals | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) | |
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().) | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) | |
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
Autres ressources
Comment : créer un connecteur de fonctionnalités personnalisé
Fournisseurs de fonctionnalités et connecteurs de fonctionnalités