Veröffentlicht 29. Oktober 201311 j Hallo, ich versuche gerade in einem t4 Template eine Funktion aufzurufen, die nicht im Template liegt. <# foreach(KeyValuePair<int, string> tr in Translation.LoadAllForEnum()) {#> <#= tr.Value #> = <#= tr.Key #> , <#}#> Der namespace ist auch drin: <#@ import namespace="Testapplication.Model" #> Doch er kann den Namespace oder die Funktion LoadAllForEnum nicht finden. Was mache ich falsch? Bearbeitet 29. Oktober 201311 j von Kaktusfan1707
29. Oktober 201311 j Autor Kompilierte Transformation: Der Name 'Translation' ist im aktuellen Kontext nicht vorhanden.
29. Oktober 201311 j Kompilierte Transformation: Der Name 'Translation' ist im aktuellen Kontext nicht vorhanden.Also geht's um Translation, nicht um LoadAllForEnum. Was ist Translation und in welchem Namespace liegt es?
29. Oktober 201311 j Autor namespace Testapplication.Model { public class Translation { public static Dictionary<int, string> LoadAllForEnum() { ... } } }
29. Oktober 201311 j Autor Nein. Die beiden Dateien (tt-File und Translation.cs) liegen im gleichen Ordner und sind im gleichen Namespace.
29. Oktober 201311 j Das ist T4 egal. Wenn du eine Klasse benutzt, musst du eine Assembly-Direktive dafür angeben.
30. Oktober 201311 j Autor Das ist bist jetzt eine WindowsForms-Anwendung. Also brauche ich ein zweites Projekt für eine Library in die meine Klasse mit der Funktion kommt und diese dll kann ich dann im Template verwenden?
30. Oktober 201311 j Dann solltest du die im Template benötigte Klasse in eine Bibliothek auslagern. Du kannst ja schlecht eine Assembly in einem Template verwenden, das zum Bauen derselben Assembly benötigt wird.
30. Oktober 201311 j Autor Jetzt habe ich mich doch zu früh gefreut. In der WindowsForms-Anwendung binde ich meine neue Monitoring.dll ein. Doch im Code von einer Form unterringelt er mir "MonitoringLibrary" und "Settings" was eine Klasse in MonitoringLibrary ist findet er auch nicht. using MonitoringLibrary; using System; using System.Windows.Forms; namespace MeinMonitoring { public partial class Optionen : Form { Settings user; Settings password; ...
30. Oktober 201311 j Autor Der Typ- oder Namespacename 'MonitoringLibrary'' konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) Aber die dll ist ja eingebunden.
30. Oktober 201311 j Autor So, nach etwas rumprobieren und Studio neustarten funktioniert es. Kann aber nicht sagen, an was es lag.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.