Unity oder ein anderer IoC-Container sollte in Ihrer Anwendung nie eine Rolle spielen, die über das ursprüngliche Bootstrapping der Anwendung hinausgeht. Und es sollte nachdrücklich nicht auf die Geschäfts- und Datenschichten eingehen.
Daher Bootstrap Ihre Anwendung in der Main
mit Unity und danach Unity ist fertig. Lassen Sie Unity darüber hinaus keinen anderen Teil Ihrer Anwendung berühren.
Hier ist eine Ausarbeitung zu diesem Thema: How I use Inversion of Control containers und das Follow-up Pulling from the container.
Wenn alles in Frontlayer platziert ist, dann ist nicht das ganze Projekt von Frontlayer abhängig und wenn ich den Frontlayer von Windows App auf Webapp umsetze dann muss ich die Einheitsarbeit wieder machen!
Nicht, wenn Sie die Dinge richtig eingerichtet haben. Sie benötigen Unity nicht, um die Komponenten für Ihre Anwendung aufzulösen. Unity und andere IoC-Container sind nur sehr nützliche Tools zur Lösung dieses Problems. Sie sollten zuerst Ihre Anwendung schreiben, damit sie Unity nicht benötigt. Dann können Sie problemlos Unity oder einen anderen IoC-Container anschließen, um die Komponenten aufzulösen, die Ihre Anwendung ausführen muss.
Die drei R
s von Dependency Injection sind
- Register
- Resolve
- Mitteilung
Register, wenn Sie Setup ist der Behälter. Dies geschieht, wenn Ihre Anwendung in Main
gestartet wird. Resolve ist, wenn Sie die Stammkomponenten für Ihre Anwendung auflösen. Dies ist, was die Kernkomponenten Ihrer Anwendung zusammenbringt. Die Freigabe erfolgt, wenn die Anwendung beendet wird und Sie den Container entsorgen, sodass die Komponenten ordnungsgemäß freigegeben werden. Beachten Sie, dass der Container NIEMALS NIEMALS Ihre Anwendung darüber hinaus eingibt.
Es ist mindestens drei verschiedene Frage. –