Holen Sie sich die container-Instanz für Einfache Injektor

Ich bin mit Einfach Injektor mit einer ASP.NET MVC-Projekt. Ich fügte hinzu, die SimpleInjector.Integration.Web.Mvc nuget-Paket. Dies fügt SimpleInjectorInitializer Klasse App_Start Ordner und initialisiert die DI. Der code sieht etwa wie

public static void Initialize()
{
    //Did you know the container can diagnose your configuration? 
    //Go to: https://simpleinjector.org/diagnostics
    var container = new Container();

    //Container configuration code
    DependencyResolver.SetResolver(
        new SimpleInjectorDependencyResolver(container));
}

Dieser konfiguriert die DI für die MVC-controller korrekt.

Meine Frage ist, wenn ich will, um die Instanz der container in einem der controller - \Klasse zu lösen einige Abhängigkeiten manuell, wie kann ich es tun.

Habe ich früher gearbeitet AutoFac und es hat eine Abhängigkeit Schnittstelle IComponentContext die injiziert werden kann, in jeder Klasse muss jede Auflösung manuell.

Update:

Hier ist ein Szenario. Mein controller verwendet einen service, der Initialisierung hängt von der input-parameter in der controller-Methode und damit die Abhängigkeit kann nicht instanziiert werden während der Bauzeit.

Ich verstehe, dass dies ist eher ein anti-pattern für DI, aber es ist Anforderung an wenigen stellen und damit die Injektion der DI-container ist die nächste beste Sache. Einfache Injektor-Proben sollte der Einsatz von statischen Variablen Anteil der container, die ich vermeiden will und auch ist es nicht möglich, durch die Art und Weise SimpleInjectorInitializer funktioniert.

InformationsquelleAutor der Frage Chandermani | 2013-07-28

Schreibe einen Kommentar