FeatureConnector<TFeatureProviderType> クラス
機能コネクタ ベースの全機能拡張の基本実装を提供します。
継承階層
System.Object
Microsoft.Windows.Design.Features.FeatureConnector<TFeatureProviderType>
Microsoft.Windows.Design.Policies.PolicyDrivenFeatureConnector<TFeatureProviderType>
名前空間: Microsoft.Windows.Design.Features
アセンブリ: Microsoft.Windows.Design.Extensibility (Microsoft.Windows.Design.Extensibility.dll 内)
構文
'宣言
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 では、ジェネリックな型またはメソッドは使用できません。
型パラメーター
- TFeatureProviderType
機能プロバイダーの型。
FeatureConnector<TFeatureProviderType> 型で公開されるメンバーは以下のとおりです。
コンストラクター
名前 | 説明 | |
---|---|---|
FeatureConnector<TFeatureProviderType> | FeatureConnector<TFeatureProviderType> クラスの新しいインスタンスを初期化します。 |
このページのトップへ
プロパティ
名前 | 説明 | |
---|---|---|
Context | 機能コネクタの編集コンテキストを取得します。 | |
Manager | 機能コネクタの FeatureManager を取得します。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
CreateFeatureProviders(Type) | 指定された型に基づいて、機能コネクタに関連付けられた機能プロバイダーの新しいリストを作成します。 | |
CreateFeatureProviders<TSubtype>(Type) | 指定された型とサブタイプに基づいて、機能コネクタに関連付けられた機能プロバイダーの新しいリストを作成します。 | |
Dispose() | FeatureConnector<TFeatureProviderType> によって使用されているすべてのリソースを解放します。 | |
Dispose(Boolean) | FeatureConnector<TFeatureProviderType> によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。 | |
Equals | 指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。) | |
Finalize | オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object.Finalize() をオーバーライドします。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。 (Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) | |
ToString | 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。) |
このページのトップへ
解説
最下位レベルでの WPF デザイナーとの統合を実装する必要がある場合に、抽象 FeatureConnector<TFeatureProviderType> クラスから派生します。 機能コネクタは、グローバル サービスをサブスクライブでき、独自のサービスを追加できます。
機能プロバイダーは FeatureConnectorAttribute を使用して、関連付けられた機能コネクタを指定します。
FeatureConnector<TFeatureProviderType> 基本クラスはジェネリックであり、FeatureConnector<TFeatureProviderType> がホストする機能プロバイダーの型を使用します。
機能コネクタは要求に応じて作成されます。 FeatureManager クラスが FeatureProvider で FeatureConnectorAttribute を検出したときに、その機能コネクタがまだ存在していない場合、機能マネージャーは指定された FeatureConnector<TFeatureProviderType> を作成します。
抽象 FeatureConnector<TFeatureProviderType> クラスは、シンプルな後処理実装を行う IDisposable インターフェイスを実装します。
FeatureConnector<TFeatureProviderType> クラスの機能のほとんどは、プロテクト CreateFeatureProviders メソッドで実装されます。 オブジェクトがこのメソッドに渡されると、機能コネクタは、そのオブジェクトの FeatureAttribute 型を探します。 これらの属性が見つかると、この属性に関連付けられた FeatureProvider インスタンスが作成され、リストで返されます。
例
FeatureConnector<TFeatureProviderType> クラスから派生して、IDiagnosticsService という名前のカスタム サービスと DiagnosticsMenuProvider という名前のカスタム機能プロバイダーを関連付ける方法を次のコード例に示します。 完全なコードの一覧については、「方法 : カスタム機能コネクタを作成する」を参照してください。
' 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
}
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
参照
参照
Microsoft.Windows.Design.Features 名前空間