Dynamisches Laden von Funktionen

LL0rd

Erfahrenes Mitglied
Hallo Leute,

ich bin gerade dabei ein Client - Server Projekt zu realisieren, dass "verschiedene Sachen" berechnen kann. Das ganze Projekt wird wie gesagt in einen Server und einen Client augetreilt, die per TCP miteinander quatschen sollen. Der Server soll dabei eine Multicore Maschine sein und der Client eine einfache Workstation, die dem Server jetzt sagt, was er rechnen soll.

Ursprünglich war das Projekt so ausgelegt, dass es nur auf dem Server per Remote Terminal gestartet wird, es musste jetzt aber aus lizenzrechtlichen Gründen auf verschiedene Maschinen aufgeteilt werden.

Die Berechnungen sind in der Regel graphischer Natur. "Finde in einer Liste von Linienstücken eine lange Linie" oder sowas in der Art. In dem aktuellen Projekt wurde das ganze in Module (.dll Dateien) aufgeteilt. Aber da das Programm nun als Server Anwendung nur einmal auf einem Server laufen kann (es belegt ja dann dauerhaft einen Socket), möchte ich, dass der Server die .dll Dateien für die Berechnungen irgendwie dynamisch von dem / über den Client laden kann.

Geht das irgendwie?
 
Hi

Also ich versteh dich noch nicht so richtig!
DLLs werden immer dynamisch geladen. Daher ja auch der Name. ;)
Voraussetzung dafür ist jedoch, dass entsprechende Klassen nur dann instanziiert werden, wenn sie auch wirklich benötigt werden. Nicht schon vorsorglich mal einiges instanziieren, für dann Fall, dass man es mal braucht.

Falls es sich doch um Funktionen dreht, wie im Titel:
Mit der Methode Type.GetMethod kannst du du dir die MethodInfo für eine bestimmte Methode anhand des Namens geben lassen und diese dann per Invoke ausführen.
 
Hi,

sorry, wenn ich mich etwas falsch ausgedrückt habe, mit Windows .dll Dateien und mit C# konnte ich bisher noch keine großen Erfahrungen sammeln. Für mich heißt die Benutzung von .dll Dateien in einem Projekt folgendes:

Wenn ich eine Anwendung entwickele, und Klassen aus einer .dll Datei nutzen möchte, dann mach ich einen Rechtsklick auf das Projekt und sage einfach "Verweis hinzufügen", dann kann ich eine .dll Datei auswählen und habe somit den Zugriff auf die Klassen aus der .dll. Aber nun muss ich die Datei irgendwie während der Laufzeit laden können. Nur wie mach ich das?
 

Neue Beiträge

Zurück