Ausführung von Skripten/ai/Dream.booEinbetten boo in C#, nicht erkennt Baugruppe
import CultLib
import LonelyHero
class Dream(Enemy):
pass
C#
var bc = new BooCompiler();
bc.Parameters.Input.Add(new FileInput("rsc/script/ai/" + "Dream" + ".boo"));
bc.Parameters.Pipeline = new CompileToMemory();
bc.Parameters.References.Add(Assembly.GetExecutingAssembly());
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("CultLib.dll").FullName));
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-audio-2.dll").FullName));
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-graphics-2.dll").FullName));
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-window-2.dll").FullName));
var cc = bc.Run();
if(cc.GeneratedAssembly!=null)
{
cc.GeneratedAssembly.CreateInstance("Dream", true, BindingFlags.NonPublic, null,
new object[] {Parent, pos}, null, null);
}
else
{
foreach (var error in cc.Errors)
Console.WriteLine(error);
}
In der Zeile bc.Parameters.References.Add(Assembly.GetExecutingAssembly());
ich die ausgeführten Assembly hinzufügen, die den Namensraum enthält " LonelyHero ". Der Fehler
rsc/script/ai/Dream.boo(2, 8): BCE0021: Namespace LonelyHero not found. maybe you forgot to add an assembly reference?
wird jedoch angezeigt.
LonelyHero sollte existieren, warum tritt dieser Fehler auf und was kann ich tun, um es zu lösen?
Hinweis: Nach Assembly.GetExecutingAssmebly()
mit Assembly.GetAssembly(typeof(Enemy))
ersetzt, wodurch sichergestellt wird es die Anordnung mit einer Klasse unter dem LonelyHero Namespace fügt hinzu, der gleiche Fehler auftritt. Auch mit Assembly.LoadFile(new DirectoryInfo("LonelyHero.exe").FullName)
in Boo Tritt 0.9.4.9 und booxw-1203
Können Sie einen Link mit allen relevanten Dateien bereitstellen? Wo ist die einsame Heldenversammlung im boo Programm? Ich sehe, dass Sie es importieren, aber ich sehe nicht den Code (oder Stubs des Codes würde tun) – yumaikas
LonelyHero.Enemy ist eine Klasse, die importiert werden sollte, wenn ich verstehe, was Sie fragen. –
Ist Feind öffentlich? Der importierte Namespace benötigt mindestens einen öffentlichen Typ. –