次の方法で共有


FeatureManager クラス

機能プロバイダーと機能コネクタを管理します。

継承階層

System.Object
  Microsoft.Windows.Design.Features.FeatureManager

名前空間:  Microsoft.Windows.Design.Features
アセンブリ:  Microsoft.Windows.Design.Extensibility (Microsoft.Windows.Design.Extensibility.dll 内)

構文

'宣言
Public Class FeatureManager _
    Implements IDisposable
public class FeatureManager : IDisposable
public ref class FeatureManager : IDisposable
type FeatureManager =  
    class
        interface IDisposable
    end
public class FeatureManager implements IDisposable

FeatureManager 型で公開されるメンバーは以下のとおりです。

コンストラクター

  名前 説明
パブリック メソッド FeatureManager FeatureManager クラスの新しいインスタンスを初期化します。

このページのトップへ

プロパティ

  名前 説明
パブリック プロパティ Context この機能マネージャーの編集コンテキストを取得します。
パブリック プロパティ MetadataProvider この機能マネージャーの型メタデータを提供できるカスタム メタデータ プロバイダーを取得または設定します。
パブリック プロパティ PendingConnectors コンテキスト項目またはサービスを待機しているためにまだ起動していない、すべてのコネクタの列挙体を取得します。
パブリック プロパティ RunningConnectors 現在実行中のすべてのコネクタの列挙体を取得します。

このページのトップへ

メソッド

  名前 説明
パブリック メソッド CreateFeatureProviders(Type) 指定された型の機能プロバイダーのセットを作成して返します。
パブリック メソッド CreateFeatureProviders(Type, Predicate<Type>) 指定された型の機能プロバイダーのセットを作成して返します。
パブリック メソッド CreateFeatureProviders(Type, Type) 指定された型に対して存在する機能プロバイダーのセットを作成して返します。
パブリック メソッド CreateFeatureProviders(Type, Type, Predicate<Type>) 指定された型に対して存在する機能プロバイダーのセットを作成して返します。
パブリック メソッド Dispose() FeatureManager で使用したすべてのリソースを解放します。
プロテクト メソッド Dispose(Boolean) 実行中のすべての機能コネクタを破棄します。
パブリック メソッド Equals 指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッド Finalize Dispose を呼び出すファイナライザー。 (Object.Finalize() をオーバーライドします。)
パブリック メソッド GetCustomAttributes 指定された型の属性を列挙します。
パブリック メソッド GetHashCode 特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッド GetType 現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeFeatures 指定された型に基づいて機能プロバイダーに対応する機能コネクタを初期化します。
プロテクト メソッド MemberwiseClone 現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッド OnFeatureAvailable FeatureAvailable イベントを発生させます。
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

このページのトップへ

イベント

  名前 説明
パブリック イベント FeatureAvailable 新しい機能の型が使用可能になると発生します。

このページのトップへ

拡張メソッド

  名前 説明
パブリック Extension メソッド CreateFeatureProviders(Type, ModelItem) オーバーロードされます。 指定された型およびモデル アイテムの機能プロバイダーを作成します。 (FeatureExtensions によって定義されています。)
パブリック Extension メソッド CreateFeatureProviders(Type, ModelItem, Predicate<Type>) オーバーロードされます。 指定された型およびモデル アイテムの機能プロバイダーを作成します。 (FeatureExtensions によって定義されています。)

このページのトップへ

解説

FeatureManager クラスを使用して、機能プロバイダーを作成し、実行中の機能コネクタと保留中の機能コネクタを問い合わせます。

機能コネクタのインスタンス化が必要であるが、機能コネクタが存在していないサービスまたはコンテキスト項目をサブスクライブしている場合、そのコネクタ型は保留となり、サブスクリプションは編集コンテキストに追加されます。 適切なサービスと項目が使用可能になると、機能コネクタがインスタンス化されます。

オブジェクトが編集モデルに追加されると、編集モデルは機能マネージャーの InitializeFeatures メソッドを呼び出します。ここで、このオブジェクトの機能属性がチェックされます。 これらの属性を FeatureConnector<TFeatureProviderType> 属性と対応させ、すべての一意のコネクタがインスタンス化されていることを確認します。

FeatureManager クラスを使用して実行中のコネクタと保留中のコネクタにアクセスする方法を次のコード例に示します。 完全なコードの一覧については、「方法 : カスタム機能コネクタを作成する」を参照してください。

Public Sub Initialize(ByVal manager As FeatureManager)
    featManager = manager
    Bind()
End Sub


...


' Binds the activatedFeatures and pendingFeatures controls
' the FeatureManager's RunningConnectors and PendingConnectors\
' properties.
Private Sub Bind()
    activatedFeatures.Items.Clear()
    pendingFeatures.Items.Clear()

    Dim info As FeatureConnectorInformation
    For Each info In featManager.RunningConnectors
        activatedFeatures.Items.Add(info)
    Next info

    For Each info In featManager.PendingConnectors
        pendingFeatures.Items.Add(info)
    Next info

End Sub
public void Initialize(FeatureManager manager) 
{
    featManager = manager;
    Bind();
}


...


// Binds the activatedFeatures and pendingFeatures controls
// the FeatureManager's RunningConnectors and PendingConnectors\
// properties.
private void Bind() 
{
    activatedFeatures.Items.Clear();
    pendingFeatures.Items.Clear();

    foreach (FeatureConnectorInformation info in 
        featManager.RunningConnectors) 
    {
        activatedFeatures.Items.Add(info);
    }

    foreach (FeatureConnectorInformation info in 
        featManager.PendingConnectors) 
    {
        pendingFeatures.Items.Add(info);
    }
}

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

参照

Microsoft.Windows.Design.Features 名前空間

FeatureProvider

FeatureConnector<TFeatureProviderType>

その他の技術情報

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

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

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