ProvideObjectAttribute 类

通知 Visual Studio VSPackage 提供可从 ILocalRegistry接口创建的对象。 此类不能被继承。

继承层次结构

System.Object
  System.Attribute
    Microsoft.VisualStudio.Shell.RegistrationAttribute
      Microsoft.VisualStudio.Shell.ProvideObjectAttribute

命名空间:  Microsoft.VisualStudio.Shell
程序集:  Microsoft.VisualStudio.Shell.11.0(在 Microsoft.VisualStudio.Shell.11.0.dll 中)

语法

声明
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True, Inherited := True)> _
Public NotInheritable Class ProvideObjectAttribute _
    Inherits RegistrationAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ProvideObjectAttribute : RegistrationAttribute

ProvideObjectAttribute 类型公开以下成员。

构造函数

  名称 说明
公共方法 ProvideObjectAttribute 此构造函数使用给定目标类型创建新的 ProvideObjectAttribute 对象。

页首

属性

  名称 说明
公共属性 ObjectType ObjectType 属性返回该构造函数设置的对象类型。
公共属性 RegisterUsing 获取或设置注册方法。
公共属性 TypeId 获取此属性的当前实例。 (继承自 RegistrationAttribute。)

页首

方法

  名称 说明
公共方法 Equals 基础结构。返回一个值,该值指示此实例是否与指定的对象相等。 (继承自 Attribute。)
公共方法 GetHashCode 返回此实例的哈希代码。 (继承自 Attribute。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 IsDefaultAttribute 当在派生类中重写时,指示此实例的值是否是派生类的默认值。 (继承自 Attribute。)
公共方法 Match 当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (继承自 Attribute。)
公共方法 Register 提供有关 VSPackage 中注册信息,在调用由外部注册工具 (如 regpkg.exe。有关更多信息,请参见 注册 Vspackage。 (重写 RegistrationAttribute.Register(RegistrationAttribute.RegistrationContext)。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)
公共方法 Unregister 移除了有关 VSPackage 中注册信息,在调用由外部注册工具 (如 regpkg.exe。有关更多信息,请参见 注册 Vspackage。 (重写 RegistrationAttribute.Unregister(RegistrationAttribute.RegistrationContext)。)

页首

显式接口实现

  名称 说明
显式接口实现私有方法 _Attribute.GetIDsOfNames 将一组名称映射为对应的一组调度标识符。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.GetTypeInfo 检索对象的类型信息,然后可以使用该信息获取接口的类型信息。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.GetTypeInfoCount 检索对象提供的类型信息接口的数量(0 或 1)。 (继承自 Attribute。)
显式接口实现私有方法 _Attribute.Invoke 提供对某一对象公开的属性和方法的访问。 (继承自 Attribute。)

页首

备注

在调用

将 ProvideObjectAttribute 特性应用于 Microsoft.VisualStudio.Package派生类,则提供可从 ILocalRegistry接口创建的对象。

基本用法

ProvideObjectAttribute 类通知 Visual Studio 它提供可从 ILocalRegistry接口创建的对象。 始终使用此属性而不是全局注册对象在注册表的 HKEY_CLASSES_ROOT \CLSID 部分。 使用 ProvideObjectAttribute,修改 Microsoft.VisualStudio.Package派生类或实现的类 IVsPackage

此特性类仅用于与 regpkg.exe 的外部注册工具提供数据。 它没有为 VSPackage 的运行时行为的任何效果。 有关更多信息,请参见 注册 Vspackage

备注

C# 自动追加单词 “属性”对任何特性类的名称。在 C# 代码,请参见此属性作为 ProvideObject

注册表项

  • 以下注册表项由 ProvideObjectAttribute 类创建的:

  • VSROOT\CLSID\{ObjectGuid}

  • VSROOT\CLSID\{ObjectGuid}\@=ObjectType.FullName

  • VSROOT\CLSID\{ObjectGuid}\InprocServer 32=mscoree.dll

  • VSROOT\CLSID\{ObjectGuid}\Class=ObjectType.FullName

  • VSROOT\CLSID\{ObjectGuid}\Assembly=ObjectType.Assembly.FullName

  • VSROOT\CLSID\{ObjectGuid}\ThreadingModel=Both

  • VSROOT\CLSID\{PackageGuid}\CodeBase=context.CodeBase

示例

可以找到 ProvideObjectAttribute 类的实现托管示例的。 用于自动注册和其他属性的标准位置的这是在 Microsoft.VisualStudio.Package 类的实现的包装在 VsPkg.cs, VsPkg.vb 的或 VsPkg.cpp,基于用于该示例的语言。

线程安全

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

请参见

参考

Microsoft.VisualStudio.Shell 命名空间