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) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。