实现和使用自动化扩展程序
更新:2007 年 11 月
Visual Studio 自动化模型的自动化扩展程序部分提供添加或筛选指定项目类型中显示的属性的能力。例如,Visual Studio 中有一个 Visual Basic 代码模型,此模型包含一个表示 Visual Basic 类的对象。例如,您不但可以使用自动化扩展程序向中间层业务对象中的现有属性添加新属性,还可以使用此模型筛选在项目属性页中显示的属性。
存在以下一种情形。用户可以在“解决方案资源管理器”中选择类项并修改向导创建的代码,也可以将编辑器的插入点放入类定义中,结果,“属性”窗口可能会显示此类的其他属性,这些属性为关联属性,因为此类定义为中间层业务对象定义。自动化扩展程序允许这样做,甚至做得更多。
以下列出了自动化扩展程序对象模型中的对象:
对象名 |
说明 |
---|---|
表示一个已知的扩展程序提供程序。 |
|
表示未知的扩展程序提供程序。 |
|
承载自动化扩展程序的 Site 对象。 |
|
实现此接口时,允许扩展程序阻止指定的属性显示在“属性”窗口中。 |
|
提供到自动化扩展程序的访问。 |
通过使用这些对象,您可以:
向 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
运行示例
生成和部署 SolutionExtender 解决方案。
通过使用命令行注册表文件 SolutionExtender.reg 在 SolutionExtender.reg 中添加注册项。
运行 devenv.exe,然后打开或创建新解决方案。
在“解决方案资源管理器”中选择解决方案节点,以查看新添加的属性。