VS2008 AddIn 操作DTE2

简介:

 在VS2008扩展开发中,最重要的就是DTE对象。DTE对象提供了对扩展性模型中其他对象的访问。DTE是VS自动化模型中的顶级对象。

  在按照http://www.cnblogs.com/yjf512/archive/2010/06/05/1752401.html中描述的创建VS AddIn插件后,能在Connect类中找到private DTE2 _applicationObject这个属性,对文件的各项操作就是从这个DTE2属性中开始:

以下方法可以在Exec方法中引用:

 

如何使用DTE2打开一个解决方案:

 

ExpandedBlockStart.gif
复制代码
 
  
private void OpenSolution( string solutionFullName, DTE2 _applicationObject)
{
try
{
((DTE2)_applicationObject).Solution.Open(solutionFullName);
}
catch (Exception ex)
{
throw ;
}
}
复制代码

 

 

取得当前解决方案中的所有方法:

(其中包含了对Project的操作、对FileCodeModel的操作,对codeElement的操作)

 

ExpandedBlockStart.gif
复制代码
 
  
private CodeFunction2[] GetAllFunctionInCurrentCode(DTE2 _applicationObject)
{
List
< CodeFunction2 > codeFuncs = new List < CodeFunction2 > ();

int projectCount = _applicationObject.Solution.Projects.Count;
try
{
for ( int i = 0 ; i < projectCount; i ++ )
{
Project project
= _applicationObject.Solution.Projects.Item(i + 1 );
foreach (ProjectItem vsproject in project.ProjectItems)
{
if (vsproject.Name.Contains( " .cs " ))
{
FileCodeModel2 CM
= (FileCodeModel2)vsproject.FileCodeModel;
foreach (CodeElement2 codeElement in CM.CodeElements)
{
if (codeElement.Kind == vsCMElement.vsCMElementNamespace)
{
CodeElement2 eleTemp
= codeElement;
Queue
< CodeElement2 > childElements = new Queue < CodeElement2 > ();
childElements.Enqueue(eleTemp);
while (childElements.Count != 0 )
{
CodeElement2 topEle
= childElements.Dequeue();
if (topEle.Kind == vsCMElement.vsCMElementFunction)
codeFuncs.Add((CodeFunction2)topEle);
if (topEle.Children != null )
{
foreach (CodeElement2 childrenItem in topEle.Children)
{
childElements.Enqueue(childrenItem);
}
}
}
}
}
}
}
}
}
catch (Exception ex)
{
throw ;
}
return codeFuncs.ToArray();
}
复制代码

 

目录
相关文章
|
7月前
使用 SAP ABAP 封装的 Office Integration class 访问本地 Excel 文件
使用 SAP ABAP 封装的 Office Integration class 访问本地 Excel 文件
47 0
|
8月前
|
JavaScript 前端开发 API
Visual Studio Code Active File in StatusBar 扩展以及 Extension API 概述
Visual Studio Code Active File in StatusBar 扩展以及 Extension API 概述
41 0
|
XML 数据格式
Revit两种外部接口的插件注册文件addin
Revit两种外部接口的插件注册文件addin
|
自然语言处理 Windows
初识VSTO Addin开发
原文:初识VSTO Addin开发 这篇博客将简单介绍一些VSTO Addin开发的知识。 1. VSTO是什么?我们可以用VSTO做什么? VSTO全称Visual Studio Tool for Office,是可以让我们针对现有的Office程序进行功能扩展。
1946 0
|
C#
Power Designer 转C#实体类方法
原文:Power Designer 转C#实体类方法 1、打开Power Designer菜单 Tools,选择如图    2、弹出方框中选择PD安装目录下的如图地址 3、object language选择正确目录后,可选如图语言,如C#。
1162 0
|
C#
WPF在DLL中读取Resource的方法
原文:WPF在DLL中读取Resource的方法 WPF是个用户控件,被WinForm调用。而WinForm是在一个DLL类库中被调用。试了很多方法,都无法将Resource中的图读进程序。用下面的方法总算实现了。
1753 0
|
BI C# 数据格式
VS2017 处理 Rdlc , microsoft report viewer 轻量级报表处理(WPF CS客户端版本)
原文:VS2017 处理 Rdlc , microsoft report viewer 轻量级报表处理(WPF CS客户端版本) VS 2017没有安装处理Rdlc的包,需要手动安装; 点击主菜单中Tools 下拉菜单中 扩展和升级: 点选左侧Online  ,然后在右侧输入rdlc进行查...
2327 0