FeatureConnector<TFeatureProviderType>-Klasse
Aktualisiert: November 2007
Stellt eine Basisimplementierung für alle Erweiterungen bereit, die auf Featureconnectoren basieren.
Namespace: Microsoft.Windows.Design.Features
Assembly: Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)
Syntax
'Declaration
Public MustInherit Class FeatureConnector(Of TFeatureProviderType As FeatureProvider) _
Implements IDisposable
'Usage
Dim instance As FeatureConnector(Of TFeatureProviderType)
public abstract class FeatureConnector<TFeatureProviderType> : IDisposable
where TFeatureProviderType : FeatureProvider
generic<typename TFeatureProviderType>
where TFeatureProviderType : FeatureProvider
public ref class FeatureConnector abstract : IDisposable
JScript unterstützt keine generischen Typen oder Methoden.
Typparameter
- TFeatureProviderType
Der Featureanbietertyp.
Hinweise
Sind von der abstrakten FeatureConnector<TFeatureProviderType>-Klasse abgeleitet, wenn mit dem WPF-Designer die tiefste Ebene der Integration implementiert werden muss. Featureconnectoren können globale Dienste abonnieren und ihre eigenen Dienste hinzufügen.
Featureanbieter verwenden FeatureConnectorAttribute, um den zugeordneten Featureconnector anzugeben.
Die FeatureConnector<TFeatureProviderType>-Basisklasse ist generisch und verwendet den Typ des Featureanbieters, den der FeatureConnector<TFeatureProviderType> hostet.
Featureconnectoren werden nach Bedarf erstellt. Wenn die FeatureManager-Klasse für einen FeatureProvider ein FeatureConnectorAttribute ermittelt, wird der angegebene FeatureConnector<TFeatureProviderType> erstellt, wenn er nicht bereits vorhanden ist.
Die abstrakte FeatureConnector<TFeatureProviderType>-Klasse implementiert die IDisposable-Schnittstelle, die eine einfache Bereinigungsimplementierung beinhaltet.
Die meisten Funktionen der FeatureConnector<TFeatureProviderType>-Klasse sind in der geschützten CreateFeatureProviders-Methode implementiert. Die Übergabe eines Objekts an diese Methode bewirkt, dass vom Featureconnector das Objekt nach FeatureAttribute-Typen durchsucht wird. Wenn solche Attribute gefunden werden, wird eine dem jeweiligen Attribut zugeordnete FeatureProvider-Instanz erstellt und in einer Liste zurückgegeben.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie von der FeatureConnector<TFeatureProviderType>-Klasse abgeleitet wird, um einen benutzerdefinierten Featureanbieter mit dem Namen DiagnosticsMenuProvider einem benutzerdefinierten Dienst mit dem Namen IDiagnosticsService zuzuordnen. Die vollständige Codeauflistung finden Sie unter Gewusst wie: Erstellen einer benutzerdefinierten Featureverbindung.
' 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
}
Vererbungshierarchie
System.Object
Microsoft.Windows.Design.Features.FeatureConnector<TFeatureProviderType>
Microsoft.Windows.Design.Features.PolicyDrivenFeatureConnector<TFeatureProviderType>
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Siehe auch
Referenz
FeatureConnector<TFeatureProviderType>-Member
Microsoft.Windows.Design.Features-Namespace
Weitere Ressourcen
Gewusst wie: Erstellen einer benutzerdefinierten Featureverbindung