ExtensionManager 类
维护扩展上下文,并负责加载扩展。 扩展包含供数据库项目使用的 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 命名空间