分享
 
 
 

VisualBasic和VisualC#中项目扩展性介绍

王朝vb·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Visual Studio .NET 包含一个可编程、非特定项目的对象模型,它提供对集成开发环境 (IDE) 的基础组件和事件的访问。该“常规扩展性”模型具有表示若干对象的组件,这些对象包括:解决方案、项目、工具窗口、代码编辑器、调试器、代码对象、文档和事件。此常规扩展性模型在自动化功能组中讨论。

Visual Studio .NET 还包含一个可编程对象模型,该模型公开 Visual Basic 和 Visual C# 项目及其所包含的项目项。该模型包含几个对象,这些对象可用于自动化 IDE 中的任务以及扩展项目类型和项目项。Visual Basic 和 Visual C# 项目的此模型在文档的本节讨论。

只要向任意项目添加对 VSLangProj.dll 程序集的引用,便可使用该对象模型。有关更多信息,请参见添加和移除引用。即,该对象模型可供宏、外接程序以及需要扩展或自动化 IDE 的任何类型的项目使用。宏是使用 Visual Basic .NET 在宏集成开发环境中编写的。这些主题中的示例是用 Visual Basic .NET 语言编写的。外接程序可以用任何 .NET 语言编写,包括 Visual Basic、Visual C#、C++ 和 JScript .NET。VSLangProj 成员的参考主题包括这些语言中的每一语言的语法。

VSLangProj 命名空间

该命名空间包含 Visual Basic 和 Visual C# 的所有类、接口和枚举。有关该命名空间中对象的完整列表,请参见用于项目的 Visual Basic 和 Visual C# 扩展性对象模型。

VSProject 对象

该对象提供对扩展性模型中的其他对象的访问。DTE 对象是 Visual Studio 自动化模型中的顶级对象。在常规扩展性模型中,项目由一般 Project 对象表示。Project 对象有个 Object 属性。该属性的类型在运行时由项目语言决定。在 Visual Basic 或 Visual C# 项目中,Object 属性返回一个 VSProject 类型的对象。由于 Object 属性的类型是 Object,因此您必须将引用转换为 VSProject 类型。在宏中,如果第一个项目是 Visual Basic 项目,那么转换可能类似于:

' Macro editor

Dim proj As Project

Dim vsproject As VSLangProj.VSProject

proj = DTE.Solution.Projects.Item(1)

vsproject = CType(proj.Object, VSLangProj.VSProject)

有了对 VSProject 项的引用后,便可以操作项目的属性、配置、文件、文件夹、Imports 语句和引用了。

References 和 Reference 对象

VSProject 对象所包含的 References 对象存放 Reference 对象的集合。Reference 对象表示一个项目引用,它主要是个支持 Remove 方法的只读对象。References 对象支持添加引用(COM、.NET 程序集、ActiveX 和其他项目)和引发事件(添加、移除和更改引用)。

References 对象不包含项目的 Web 引用。项目的 Web 引用可通过访问 WebReferencesFolder 属性的 ProjectItems 属性来检索。

Imports 对象

VSProject 对象所包含的 Imports 对象维护“导入”(Imports) 语句的集合,这些语句应用于整个 Visual Basic 项目。当向该集合添加一条 Imports 语句时,不必将相应的 Imports 语句(例如 Imports VSLangProj)添加到代码文件。该对象支持添加和移除 Imports 语句以及为响应添加和移除语句而引发事件。Visual C# 项目中无等效对象,并且当应用于 Visual C# 项目时,VSProject.Imports 属性将返回 Nothing。

VSProjectItem 和 BuildManager 对象

VSProjectItem 对象是 VSProject 对象的项目项副本。在常规扩展性模型中,项目项由一般 ProjectItem 对象表示。ProjectItem.Object 属性的类型是 Object,而在 Visual Basic 或 Visual C# 项目中,该属性的类型是 VSProjectItem。在宏中,将该对象转换为 VSProjectItem 类型可能类似于:

' Macro editor

Dim pi As VSProjectItem

pi = CType(DTE.Solution.Projects.Item(1).ProjectItems.Item(1).Object, _

VSProjectItem)

VSProjectItem 对象包含链接到父项目项和项目的属性,以及一个强制在该项上执行某自定义工具的方法。BuildManager 对象处理自定义工具输出。

Properties 属性

常规扩展性模型在三个对象中有 Properties 属性:

Project 对象

该对象中的属性等效于 IDE 中项目的“属性页”对话框的“通用属性”选项卡中的属性。

Configuration 对象

该对象中的属性等效于 IDE 中项目的“属性页”对话框的“配置属性”选项卡中的属性。

ProjectItem 对象

该对象中的属性等效于当在“解决方案资源管理器”中选择了一个项目项时“属性”窗口中的属性。

在每种情况下,Properties 属性都是 Property 类型的对象的集合。可通过指定属性的从 1 开始的索引或其名称,从该集合中获得 Property 对象。该集合的内容取决于语言。在项目项的情况下,此内容还取决于该项是文件还是文件夹。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有