我使用文档中的有形T4
示例并按如下方式提取类:
// get all class items from the code model
var allClasses = VisualStudioHelper.CodeModel.GetAllCodeElementsOfType(project.CodeModel.CodeElements, EnvDTE.vsCMElement.vsCMElementClass, false);
方法:
// get all methods implemented by this class
var allFunctions = VisualStudioHelper.CodeModel.GetAllCodeElementsOfType(codeClass.Members, EnvDTE.vsCMElement.vsCMElementFunction, false);
以下是我初始化project和codeClass的方法:
var project = VisualStudioHelper.GetProject("CodeBase");
var allClasses = VisualStudioHelper.CodeModel.GetAllCodeElementsOfType(project.CodeModel.CodeElements, EnvDTE.vsCMElement.vsCMElementClass, false);
foreach(CodeClass codeClass in allClasses) { ..... }
除了我没有从class
获取所有方法之外,这是有效的。该类是partial class
,我只从第一个*.cs
文件中获取方法。
任何想法或解决方法?