.dll in .dll einbinden funktioniert nur bedingt



  • Hallo Forum

    ich bin noch relativ neu in C# und habe jetzt versucht, in meinen Code eine .dll (dllX) einzubinden. Das funktioniert bisher auch, ich kann auf die Funktionen in der .dll zugreifen. Nun habe ich mein Programm, in dem die .dll eingebunden ist, auch als .dll (dllY) umgewandelt und widerum in einem anderen Projekt eingebunden. Nun habe ich das Phänomen, dass ich in .dllX eigentlich in ein File schreiben möchte. Dieses File wird aber nicht kreiert, wenn ich dllX über dllY aufrufe, die widerum in meinem Projekt aufgerufen wird. Also der Ablauf ist
    Programm ruft dllY auf die auf dllX zugreift. Wenn ich die dllX direkt in ein Testprogramm einbinde funktioniert sie, wenn ich sie über eine andere dll aufrufe passieren komische Dinge. Woran kann das liegen? Was passiert denn plötzlich wenn die eine dll die andere dll aufruft was vorher nicht passiert ist?

    Danke für jede Hilfe!



  • Geh doch mal mit den Debugger rein.



  • Hmm, würde ich gerne, geht aber nicht. Ich kann nur die in die erste .dll einsteigen, in die zweite komme ich nicht rein. Wenn ich die zweite .dll widerum direkt einbinde, dann komme ich rein. Kann es sein dass es da von .Net eine Sicherheitsschranke oder keine Ahnung was gibt, dass man nur in die erste Ebene von Bibliotheken reinkommt, aber nicht in die zweite? Keine Ahnung, ich weiss nicht was da schief läuft.



  • passieren komische Dinge

    Was für "komische" Dinge?
    Was willst du denn überhaupt erreichen, frag ich mal sorum?



  • Also, ich will eine Bibliothek schreiben, auf die eine Visualisierung zugreifen kann. Für diese Bibliothek widerum habe ich Funktionen gefunden, die ich brauche, die in einer anderen Bibliothek vorliegen. Nun habe ich BibliothekA in BibliothekB eingebunden, und die Visualisierung kommuniziert mit BibliothekB. Nun liefert BibliothekA aber nicht die richtigen Ergebnisse, wenn ich BibliothekB debugge. Binde ich BibliothekA aber direkt in ein TestProgramm ein, dann sind die Ergebnisse korrekt, der Aufruf im TestProgramm oder in der BibliothekB unterscheiden sich aber nicht für BibliothekA. Jetzt frage ich mich, was passiert, da ich ja nichts anderes mache als nochmal eine Bibliothek zwischenzuschalten, den Aufruf für die BibliothekA aber nicht ändere. Es scheint so zu sein, dass beim Zwischenschalten einer weiteren Bibliothek die Ergebnisse auf mysteriöse Weise verändert werden.



  • Steht denn bibliothekt B im direkten Zusammenhang mit Bibliothek A? Wenn nicht, spricht doch nichts dagegen einen Extra Namespace(oder einfach einen Ordner) im Hauptprojekt anzulegen und dort beide dll´s reinzupacken.Oder warum muss B unbedingt A "einbinden"?



  • Weil die BibliothekB die einzige Schnittstelle ist nachher zum Hauptprogramm. Die beiden Bibliotheken stehen auch nicht in Bezug zueinander.


Anmelden zum Antworten