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 命名空间
FeatureConnector<TFeatureProviderType>