次の方法で共有


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 クラスが FeatureProviderFeatureConnectorAttribute を検出したときに、その機能コネクタがまだ存在していない場合、機能マネージャーは指定された 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 名前空間

FeatureManager

FeatureProvider

FeatureConnectorAttribute

その他の技術情報

方法 : カスタム機能コネクタを作成する

機能プロバイダーと機能コネクタ

WPF デザイナーの機能拡張について