Share via


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) 指定为类型,将加载指定为具有 NoneBindingClassification 值的那些扩展。

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.Data.Schema.Extensibility 命名空间

DatabaseSchemaProvider

BindingClassification

其他资源

扩展 Visual Studio 的数据库功能