维护扩展上下文,并负责加载扩展。 扩展包含供数据库项目使用的 DatabaseSchemaProvider 实例。 每个数据库项目各维护一个 ExtensionManager 实例。
继承层次结构
System.Object
Microsoft.Data.Schema.Extensibility.ExtensionManager
命名空间: Microsoft.Data.Schema.Extensibility
程序集: Microsoft.Data.Schema(在 Microsoft.Data.Schema.dll 中)
语法
声明
Public NotInheritable Class ExtensionManager
public sealed class ExtensionManager
public ref class ExtensionManager sealed
[<Sealed>]
type ExtensionManager = class end
public final class ExtensionManager
ExtensionManager 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
![]() |
ExtensionManager | 使用 DatabaseSchemaProvider 的限定类型名称初始化 ExtensionManager 的实例。 |
页首
属性
名称 | 说明 | |
---|---|---|
![]() ![]() |
AllDatabaseSchemaProviderTypes | 获取所有可用数据库架构提供程序类型的列表。 |
![]() |
DatabaseSchemaProvider | 获取关联的数据源提供程序实例。 |
![]() |
Errors | 如果此管理器的创建触发了类型加载,则从加载操作中获取错误的只读集合。 |
![]() ![]() |
UseVisualStudioInstalledExtensionPaths | 获取或设置是否从 Visual Studio 扩展路径以及通过 AddExtensionLoadPath() 指定的任何路径加载 extension.xml 文件和扩展程序集。 |
页首
方法
名称 | 说明 | |
---|---|---|
![]() ![]() |
AddExtensionLoadPath | 添加扩展加载路径列表的路径。 |
![]() |
Equals | 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。) |
![]() |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) |
![]() |
GetExtension<TInterfaceType>(Type) | 检索与提供的 Type 匹配的 ExtensionHandle<TInterfaceType>。 |
![]() |
GetExtension<TInterfaceType>(ExtensionHandle) | 在当前 ExtensionManager 中查找类型为 IExtension 且具有相应配置(由 ExtensionHandle 参数值作为对象标识)的扩展。 |
![]() |
GetExtension<TInterfaceType>(String, String) | 使用提供的程序集名称和类型名称在当前 ExtensionManager 的已加载扩展中查找某一扩展。 |
![]() |
GetExtensions<TInterfaceType> | 为提供的扩展接口类型返回已成功加载的扩展类型的列表。 |
![]() |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) |
![]() |
GetSingleExtension<TInterfaceType> | 返回一个 ExtensionHandle 对象。 |
![]() |
GetType | 获取当前实例的 Type。 (继承自 Object。) |
![]() ![]() |
InstantiateType<T>(Type) | 实例化类型并将其强制转换为接口。 |
![]() ![]() |
InstantiateType<T, TProxy>(Type) | 实例化类型并将其强制转换为接口。 |
![]() |
IsCompatibleWithCurrentProvider | 返回一个值,该值指示传递的数据服务提供程序名称或密钥是否与此 ExtensionManager 中的当前提供程序兼容。 |
![]() |
IsExtension<TInterfaceType>(Type) | 检查当前实例中是否存在与提供的类型匹配且无配置的有效扩展。 |
![]() |
IsExtension<TInterfaceType>(ExtensionHandle) | 检查提供的扩展句柄是否有效以及是否已加载到当前 ExtensionManager 中。 |
![]() ![]() |
LoadType | 搜索并加载在 DLL 中定义的附属类型。这些 DLL 可以位于全局程序集缓存 (GAC)、VS BaseDir 或 VSTSDB\Extensions 文件夹中。 |
![]() |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) |
![]() |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
![]() |
TryGetSingleExtension<TInterfaceType> | 尝试获取一个所提供泛型类型的扩展。 |
页首
备注
ExtensionManager 实例与 DatabaseSchemaProvider 的指定类型相关联。 ExtensionManager 保存 DatabaseSchemaProvider 的实例,它加载指定为与此数据服务提供程序兼容的所有扩展类型。 如果 nullnull 引用(在 Visual Basic 中为 Nothing) 指定为类型,将加载指定为具有 None 的 BindingClassification 值的那些扩展。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
请参见
参考
Microsoft.Data.Schema.Extensibility 命名空间