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 当新的功能类型可用时发生。

页首

扩展方法

  名称 说明
公共扩展方法 CreateFeatureProviders(Type, ModelItem) 已重载。 创建指定类型和模型项的功能提供程序。 (由 FeatureExtensions 定义。)
公共扩展方法 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 设计器扩展性