Warum nicht Ihren IoC-Container herumreichen?

Auf dieser AutoFac-Seite "Best Practices" (http://code.google.com/p/autofac/wiki/BestPractices), man sagt:

Übergeben Sie den Container nicht herum Wenn Sie Komponenten Zugriff auf den Container gewähren, ihn in einer öffentlichen statischen Eigenschaft speichern oder Funktionen wie Resolve () für eine globale "IoC" -Klasse verfügbar machen, wird der Zweck der Abhängigkeitsinjektion aufgehoben. Solche Designs haben mehr mit dem Service Locator-Muster gemeinsam. Wenn Komponenten eine Abhängigkeit vom Container haben, überprüfen Sie, wie sie den Container zum Abrufen von Diensten verwenden, und fügen Sie diese Dienste stattdessen den Konstruktorargumenten der Komponente (Abhängigkeit injiziert) hinzu.

Was wäre also ein besserer Weg, um eine Komponente "dynamisch" eine andere instanziieren zu lassen? Ihr zweiter Absatz behandelt nicht den Fall, in dem die Komponente, die "möglicherweise" erstellt werden muss, vom Zustand des Systems abhängt. Oder wenn Komponente A X-Nummer von Komponente B erstellen muss.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage