how use envdte static class
<#@ template debug="false" hostspecific="true" language="c#" #> <#@ assembly name="system.core" #> <#@ assembly name="envdte" #> <#@ import namespace="system.linq" #> <#@ import namespace="system.text" #> <#@ import namespace="system.collections.generic" #> <#@ import namespace="envdte" #> <#@ output extension=".txt" #> <# iserviceprovider hostserviceprovider = host iserviceprovider; envdte.dte dte = hostserviceprovider.getservice(typeof(envdte.dte)) envdte.dte; envdte.projectitem containingprojectitem = dte.solution.findprojectitem(host.templatefile); project project = containingprojectitem.containingproject; var codes= project.codemodel.codeelements; foreach (codeelement code in codes) { if (code.name=="ms") continue; if (code.name=="system") continue; if (code.name=="microsoft") continue; if (code.name.startswith("envdte")) continue; try { foreach (codeelement item in ((codenamespace)code).members) { if (item.kind== vscmelement.vscmelementclass) { codeclass cc = (codeclass)item; #> <#=cc.name #> <# } } } catch {} } #>
this t4 codes;
it can output class name,
but can not determine whether class static.
i want output static class name.
add references:
<#@ assembly name="envdte80" #>
<#@ import namespace="envdte80" #>
use codeclass2 interface, has isshared property