实现和使用自动化扩展程序

更新:2007 年 11 月

Visual Studio 自动化模型的自动化扩展程序部分提供添加或筛选指定项目类型中显示的属性的能力。例如,Visual Studio 中有一个 Visual Basic 代码模型,此模型包含一个表示 Visual Basic 类的对象。例如,您不但可以使用自动化扩展程序向中间层业务对象中的现有属性添加新属性,还可以使用此模型筛选在项目属性页中显示的属性。

存在以下一种情形。用户可以在“解决方案资源管理器”中选择类项并修改向导创建的代码,也可以将编辑器的插入点放入类定义中,结果,“属性”窗口可能会显示此类的其他属性,这些属性为关联属性,因为此类定义为中间层业务对象定义。自动化扩展程序允许这样做,甚至做得更多。

以下列出了自动化扩展程序对象模型中的对象:

对象名

说明

IExtenderProvider 接口

表示一个已知的扩展程序提供程序。

IExtenderProviderUnk 接口

表示未知的扩展程序提供程序。

IExtenderSite 接口

承载自动化扩展程序的 Site 对象。

IFilterProperties 接口

实现此接口时,允许扩展程序阻止指定的属性显示在“属性”窗口中。

ObjectExtenders 对象

提供到自动化扩展程序的访问。

通过使用这些对象,您可以:

  • 向 Visual Studio 中可以通过“属性”窗口或者通过代码进行访问的对象添加属性。

  • 隐藏属性,使它们不会显示在“属性”窗口中。

  • 用一个具有相同名称但只接受某个特定值集的属性替换另一个属性。

自动化扩展程序示例

有关如何使用自动化扩展程序向 Visual Studio 对象添加属性和方法的示例,请参见位于 “Visual Studio Automation Samples”(Visual Studio 自动化示例) 网页中的“Solution Extender Add-in”(解决方案扩展程序外接程序)示例。

SolutionExtender 示例同时扩展解决方案“属性”窗口显示对象和 DTE.Solution 自动化对象,并添加四个新属性:Notes、Created、LastAccessed 和 LastModified。通过使用下面的宏中所示的 DTE.Solution 可以引用这些新属性:

Sub ShowNotes()
    Dim extender As Object
    extender = DTE.Solution.Extender("SolutionMisc")
    MsgBox(extender.Notes)
End Sub

运行示例

  1. 生成和部署 SolutionExtender 解决方案。

  2. 通过使用命令行注册表文件 SolutionExtender.reg 在 SolutionExtender.reg 中添加注册项。

  3. 运行 devenv.exe,然后打开或创建新解决方案。

  4. 在“解决方案资源管理器”中选择解决方案节点,以查看新添加的属性。

请参见

任务

如何:添加和处理命令

如何:创建外接程序

演练:创建向导

概念

自动化对象模型图表

其他资源

创建和控制环境窗口

创建外接程序和向导

自动化与扩展性参考