Hallo Herr Monschau,
mit der aktuellen Version geht das leider noch nicht. Unter
FlowHeaterBeta.zip liegt aber ein leicht modifizierter FlowHeater damit kann das abgebildet werden
Das ganze beruht auf folgenden kleinen C# .NET Skript Code für den
.NET Script Heater.
Achtung: Spoiler!
object instance = null;
public object DoWork()
{
BindingFlags baseBindingFlags = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
// beim 1. Aufruf DLL laden und Instance erzeugen
if (instance == null)
{
// Klassenname inkl. kompletten Namespace
string classname = "FHTest.Class1";
// welche .NET DLL soll geladen werden
// die DLL wird aus dem gleichen Verzeichnis, wo die Definition gespeichert ist, geladen
// es gehen aber auch absolute Pfadangaben!
Assembly asm = Assembly.LoadFrom("FHTest.dll");
// Instance der Klasse erzeugen
Type t = asm.GetType(classname);
instance = t.InvokeMember(classname, baseBindingFlags | BindingFlags.CreateInstance, null, null, null);
}
// Heater Eingangsparameter holen
int i1 = (int)InValues[0].GetInt();
int i2 = (int)InValues[1].GetInt();
// Übergabeparamater für die Funktion festlegen.
// Die Anzahl sowie Typen der Parameter richtet sich nach der Methode die gerufen werden soll
object[] args = { i1, i2 };
// Methode Rechne der Klasse Class1 aufrufen und Wert zurückliefern
return instance.GetType().InvokeMember("Rechne", baseBindingFlags | BindingFlags.InvokeMethod, null, instance, args);
}
Zur Verdeutlichung der Arbeitsweise ist im Anhang ein Beispiel inkl. Test DLL vorhanden. In der DLL ist eine Methode
Rechne vorhanden, die 2 Übergabeparameter (int) besitzt und davon die Summe zurückliefert.
Das Skript an sich ist zwar in C#, hiermit können aber problemlos auch .NET DLLs die über VB.NET erstellt wurden, dynamisch geladen werden. Zum anpassen an den notwendigen stellen den DLL-, Klassen- bzw. Methodennamen austauschen. Evtl. noch die Übergabeparameter anpassen, das war´s auch schon.
Achtung: Das Beispiel läuft nur mit der hier verfügbaren
Testversion (FlowHeaterBeta.zip) oder mit einer Version >= 1.1.9, die demnächst erscheinen wird!