Autor Beitrag
scw1963
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 18.11.11 14:15 
Ich würde gerne in einer Klasse im Namespace a Methoden aus einer Klasse, die im Namespace b definiert sind, benutzen. Normalerweise würde ich dann Namespace b mit "using" bekannt machen. Das geht aber nicht, da es dann zu einem Ringverweis kommt, da der Namespace a schon in b mit using a; bekannt gemacht wurde. (Wie) kann ich trotzdem die entsprechenden Methoden nutzen?

Es wäre schön, wenn es auch ein kleines Beispiel dazu geben könnte.

Vielen Dank

Sepp
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 18.11.11 14:39 
Hallo!

Ringverweise bei Namespaces gibt es nicht, die können sich durchaus beide gegenseiting referenzieren. Meinst Du eventuell, dass die Klassen in unterschiedlichen Assemblies liegen, die Du als Referenzen gegenseitig einfügen möchtest?

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
scw1963 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 18.11.11 14:59 
Hallo Christian,

ja, die Klassen, bzw. Namespaces liegen nicht nur in verschiedenen Dateien, sondern auch in verschiedenen Assemblys. Gibt es dafür auch eine Lösung?

Sepp
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 18.11.11 15:08 
Hallo,

wahrscheinlich könnte man sich da was zurecht basteln, wenn man die Assemblies dynamisch lädt (ohne es ausprobiert zu haben), aber besser wäre es, glaube ich, sich mal die Klassenstruktur anzusehen, ob das so sein muss. Das kommt mir nämlich einigermaßen ungewöhnlich vor.

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
scw1963 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 18.11.11 15:13 
Das Problem ist, dass es ein "gewachsenes" Projekt ist, wo mehrere Entwickler mitgearbeitet haben, und auch eine offene Bibliothek mit eingearbeitet wurde, sodass es schwierig sein würde, etwas grundlegendes zu ändern...

Man sagte mir, dass man mit Interfaces etwas machen kann. Bzgl. Daten habe ich das auch realisieren können. Aber mit den Methoden klappt das nicht.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 18.11.11 17:50 
Das über Interfaces zu lösen läuft letztlich läuft darauf hinaus was Christian gesagt hat. Das geht. Die Klassen und deren Funktionalitäten in den Assemblies richtig logisch zu verteilen wäre aber erstmal anzuraten. Wenn dann immer noch entsprechende gegenseitige Bezüge existieren was, nur bei einem sehr unglücklichen Systemdesign vorkommt, kann man immer noch eine Interface Assembly dazwischen schalten und irgendeine Fabric implementieren die das Interface mit einer konkreten Klasse hinter füttert.