Visual Studio文本模板-获取类列表

本文关键字:获取 列表 Studio 文本 Visual | 更新日期: 2023-09-27 18:15:51

我正在尝试制作一个文本模板,通过项目中的所有类,并根据其属性生成其部分类的附加内容。

我想问,如果我能够以某种方式得到一个项目类树,在那里我可以读取所有的类及其属性和属性。

谢谢

Visual Studio文本模板-获取类列表

如果您使T4模板主机特定,您可以访问Visual Studio对象模型(EnvDTE)并查看解决方案,它的项目和它的CodeModel。

来自MSDN的示例如下:

<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
<#@ assembly name="EnvDTE" #>
<#@ import namespace="EnvDTE" #>
<# 
 IServiceProvider serviceProvider = (IServiceProvider)this.Host;
 DTE dte = serviceProvider.GetService(typeof(DTE)) as DTE;  
#>
Number of projects in this solution: <#=  dte.Solution.Projects.Count #>

一旦你获得了对项目的访问权限,你就可以使用它的CodeModel并查看CodeElements属性,该属性具有项目中的名称空间和类。