Ich möchte eine Liste aller öffentlichen Methoden in meinem Projekt erhalten, die MyAttribute
mit T4/EnvDTE sind dekoriert mit.alle Methoden erhalten, die mit einem bestimmten Attribut T4 eingerichtet/EnvDTE
Ich weiß, dass dies mit Reflektion getan werden kann, aber ich möchte die Baugruppe nicht laden und darüber in einer T4-Vorlage reflektieren, sondern ich möchte die vorhandenen Codedateien als Quelle verwenden.
Nachfolgend ist vorformulierten Code, den ich im Internet gefunden, die einen Verweis auf das aktuelle Projekt
<#@ template debug="true" hostspecific="true" language="C#" #>
<#@ assembly name="EnvDTE" #>
<#@ assembly name="System.Core.dll" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.IO" #>
<#@ output extension=".cs" #>
<#
IServiceProvider _ServiceProvider = (IServiceProvider)Host;
if (_ServiceProvider == null)
throw new Exception("Host property returned unexpected value (null)");
EnvDTE.DTE dte = (EnvDTE.DTE)_ServiceProvider.GetService(typeof(EnvDTE.DTE));
if (dte == null)
throw new Exception("Unable to retrieve EnvDTE.DTE");
Array activeSolutionProjects = (Array)dte.ActiveSolutionProjects;
if (activeSolutionProjects == null)
throw new Exception("DTE.ActiveSolutionProjects returned null");
EnvDTE.Project dteProject = (EnvDTE.Project)activeSolutionProjects.GetValue(0);
if (dteProject == null)
throw new Exception("DTE.ActiveSolutionProjects[0] returned null");
#>
Ich sehe nicht "greifbare Visual Studio Automation Helper" in VS Vorlagen Liste. – Omar
Ich sehe es jetzt. Sie müssen eine '.tt' Datei öffnen, an welcher Stelle ein' Tangible T4' Menü mit den Standardmenüs erscheint. Es ist der erste Menüpunkt. Lass mich das mal versuchen. – Omar
Ich kann Visual Studio Automation Helper in der Vorlage Gallary sehen, aber es gibt keinen Verweis auf VisualStudioHelper. Es gibt eine Klasse namens DteHelper, aber sie hat nicht die Methoden, die in Ihrem Beispiel angegeben sind, wie GetAllCodeElementsOfType. –