Es ist sehr üblich, Dependency Injection-Container für die ASP.NET-Anwendung zu erstellen, so dass sie während der Lebensdauer der Anwendung bestehen.Abhängigkeitsinjektion Container pro Anforderung
Ich erstelle den DI-Container in jeder Anfrage und lasse ihn am Ende der Anfrage frei.
Der Hauptzweck ist, dass jeder DI-Container das Disposing von Objekten unterstützt, wenn der Container entsorgt wird.
Zusätzlich: Wenn ich brauche Ressourcen unter den Anforderungen (NHibernate Session) zu teilen Ich halte sie nur in einer statischen Variablen und kapseln diesen Wert in einem Objekt pro Anfrage. Gefällt mir:
public class SessionFactoryAggregator : ISessionFactory {
static ISessionFactory actualFactory;
// Implement ISessionFactory and proxy calls to the actualFactory
}
Dies ist nur simulierte Singleton-Muster.
Meine Fragen:
- Ist es in Ordnung, das zu tun?
- Wenn nicht warum und was sollte stattdessen getan werden?
- Alle bekannten Leistungsprobleme in diesem Ansatz?
Update: Im Moment ist Schloss Windsor durch meine eigene Abstraktion von DI-Provider verwenden, so ist der eigentliche Behälter steckbar.
Danke.