Frage

Ich habe drei Projekte in meiner .NET -Lösung.
Das Hauptprojekt und zwei Klassenbibliotheksprojekte.

Ich habe herausgefunden, dass ich die Klassenbibliotheksprojekte überschreiten muss.
Kann ich das machen? Ist es sicher oder es gibt einige Überlegungen?

War es hilfreich?

Lösung

Die IDE lässt Sie nicht, wenn sich die Projekte in einer Lösung befinden. Es gibt subtile Möglichkeiten, es zu verwirklichen. Aber dann kann die Lösung nicht von Grund auf neu gebaut werden (dh Build + Rebuild), da die Montagereferenz noch nicht verfügbar ist. Refactor dies, Sie möchten wahrscheinlich eine dritte Baugruppe, auf die beide verweisen können.

Andere Tipps

Zirkuläre Referenzen sind möglich (über die Befehlszeile und einige Tricks; nicht über die IDE), aber ein großer Schmerz; Tu es nicht!

Entweder fügen Sie ein hinzu extra Montage für die gemeinsamen Typen oder verschmelzen die beiden Bibliotheken.

In vielerlei Hinsicht ist weniger einfacher ... eine Vielzahl von DLLs bedeutet nicht, dass Sie Reinheit erreicht haben - es ist nur ein Chaos.

Wenn ich auf dieses Problem gestoßen bin, habe ich Erstellte Klassen, die nur Eigenschaften haben. Könnte sein Employee, Customer, Product, wie auch immer. Diese Klassen müssen kein anderes Projekt verweisen, sodass mehrere Projekte auf sie verweisen können.

Die Methoden, die zu diesen Objekten gehören (Employee, Customer, Product) Gehen Sie dann in den anderen Projekten in ihre eigenen Klassen.

Eine Situation, in der ich dies ziemlich oft begegnet habe, befindet sich in einer dreischichtigen Anwendung - Präsentationsschicht, Geschäftsschicht und Datenzugriffsschicht. Ich möchte, dass der DAL Daten abruft und ein Mitarbeiterobjekt füllt, das an die BLL zurückgegeben wird. Wenn sich die Mitarbeiterklasse in der BLL befindet und sowohl Eigenschaften als auch Methoden hat, gibt es keine einfache Möglichkeit, ein Mitarbeiterobjekt im DAL zu bevölkern und an die BLL zurückzugeben - weil der BLL einen Verweis auf den Dal haben muss, also die Dal kann wiederum den Bll verweisen. Erstellen des separaten Projekts mit Nur-Eigenschaften-Klassen (nur immobilienklassen (Employee, Customer, Product) ist eine Möglichkeit, dieses Problem zu lösen.

Wenn Sie mit "Kreuzreferenz" meinen, möchten Sie Folgendes tun:

1) Projekt HAUPTSÄCHLICH enthält Verweise auf Bibliotheksalpha und Bibliotheks-Beta

2) Projekt Bibliotheksalpha enthält Verweise auf Bibliotheks-Beta

3) Projekt Bibliotheks-Beta enthält Verweise auf Bibliotheksalpha

dann nein. Visual Studio kann nicht bauen können HAUPTSÄCHLICH bis es baut ALPHA und BETA. Es wird nicht bauen können ALPHA bis es baut BETA. Und es wird nicht bauen können BETA bis es baut ALPHA. Daher kann es nichts bauen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top