Aufruforganisation zwischen dll's optimieren

03/02/2009 - 17:42 von Peter Fleischer | Report spam
Hi @ll,
ich suche eine Idee zur Gestaltung einer Anwendung.

Eine vorhandene Anwendung hat eine Parameterliste (XML-Datei), in der für
jede vorgegebene Berechnungsmethode der Name einer dll einzutragen ist.
Diese vorhandene Anwendung nutzt dann entsprechend gewünschter
Berechnungsmethode eine der eingetragenen dll's. Diese dll's habe ich zu
erstellen und nenne sie mal A1 bis An.

Alle meine dll's A1 bis An haben das gleiche Interface I1 zu implementieren.
Diese meine dll's A1 bis An rufen alle die gleiche weitere Berechnungs-dll
B1 auf, in der die eigentliche Berechnung durchgeführt wird. Die Methoden in
B1 müssen erkennen, welche Berechnungsmethode auszuführen ist, d.h. sie
müssen wissen, aus welcher dll A1 bis An aufgerufen wurde.

Meine erste Lösung war der Einfachkeit halber ein Kopieren der erstellten A1
in A2 bis An und der Anpassung einer Konstanten (aus einer Aufzàhlung), die
für den Aufruf der Methoden von B1 genutzt wurde. Die Methoden in B1 wussten
damit, was zu machen war. Bist auf diese Konstante sind alle dll's A1 bis An
identisch.

Meine Frage ist nun, ob jemand vielleicht eine Idee aus eigener Erfahrung
hat, wie man so etwas noch besser lösen kann. Die vorhandene Anwendung kann
nicht geàndert werden, so dass derartige Änderungsvorschlàge nicht
realisierbar sind.

Viele Grüsse
Peter
 

Lesen sie die antworten

#1 Elmar Boye
04/02/2009 - 10:07 | Warnen spam
Hallo Peter,

Peter Fleischer schrieb:
Eine vorhandene Anwendung hat eine Parameterliste (XML-Datei), in der
für jede vorgegebene Berechnungsmethode der Name einer dll einzutragen
ist. Diese vorhandene Anwendung nutzt dann entsprechend gewünschter
Berechnungsmethode eine der eingetragenen dll's. Diese dll's habe ich zu
erstellen und nenne sie mal A1 bis An.

Alle meine dll's A1 bis An haben das gleiche Interface I1 zu
implementieren. Diese meine dll's A1 bis An rufen alle die gleiche
weitere Berechnungs-dll B1 auf, in der die eigentliche Berechnung
durchgeführt wird. Die Methoden in B1 müssen erkennen, welche
Berechnungsmethode auszuführen ist, d.h. sie müssen wissen, aus welcher
dll A1 bis An aufgerufen wurde.



Eine Möglichkeit die mir einfàllt, wàre Reflection dafür zu bemühen,
z. B. die aufrufende Assembly zurückzugeben:

public string CalledFrom()
{
// oder auch Codebase
return System.Reflection.Assembly.GetCallingAssembly().FullName;
}

Unter der Voraussetzung, dass die Assembly A1...N einer Namenskonvention
folgen, sollte dies zur Identifikation ausreichen.
Und die Verteilung reduziert sich auf identische Kopien.

Gruß Elmar

Ähnliche fragen