1、InstancePerDependency
Erstelle für jede Abhängigkeit oder jeden Aufruf eine neue eindeutige Instanz. Dies ist auch die Standardmethode, Instanzen zu erstellen.
Die offizielle Dokumentation erklärt: Konfigurieren Sie die Komponente so, dass jede abhängige Komponente oder jeder Aufruf zu Resolve() eine neue, eindeutige Instanz (Standard) erhält.
2、InstancePerLifetimeScope
In einer Lebenszyklusdomäne erzeugt jede Abhängigkeit oder jeder Aufruf eine einzige gemeinsame Instanz, und für jede unterschiedliche Lebenszyklusdomäne ist die Instanz einzigartig und nicht geteilt.
Die offizielle Dokumentation erklärt: Konfigurieren Sie die Komponente so, dass jede abhängige Komponente oder jeder Aufruf zu Resolve() innerhalb eines einzelnen ILifetimeScope dieselbe geteilte Instanz erhält. Abhängige Komponenten in verschiedenen Lebensdauer-Scopes erhalten unterschiedliche Instanzen.
3、InstancePerMatchingLifetimeScope
In einer identifizierten Lebenszyklusdomäne erzeugt jede Abhängigkeit oder jeder Aufruf eine einzige gemeinsame Instanz. Instanzen in der Elterndomäne können in der Kindidentitätsdomäne der identifizierten Lebenszyklusdomäne geteilt werden. Wenn in der gesamten Vererbungshierarchie keine identifizierte Lebenszyklusdomäne gefunden wird, wird eine Ausnahme ausgelöst: DependencyResolutionException.
Die offizielle Dokumentation erklärt: Konfigurieren Sie die Komponente so, dass jede abhängige Komponente oder jeder Aufruf zu Resolve() innerhalb eines ILifetimeScope, der mit einem der bereitgestellten Tags markiert ist, denselben geteilten Instanz erhält. Abhängige Komponenten in Lifetime-Scopes, die Kinder des getaggten Scopes sind, teilen sich die Instanz des Elternteils. Wenn in der Hierarchie kein entsprechend markierter Scope gefunden werden kann, wird eine DependencyResolutionException geworfen.
4、InstancePerOwned
Im Lebenszyklus einer Instanz, die von einer Instanz in einer Lebenszyklusdomäne erstellt wird, erzeugt jede abhängige Komponente oder jeder Aufruf der Resolve()-Methode eine einzelne geteilte Instanz, und die kindliche Lebenszyklusdomäne teilt die Instanzen in der übergeordneten Lebenszyklusdomäne. Wenn in der Vererbungshierarchie keine geeignete Lebenszyklusdomäne mit Kindinstanzen gefunden wird, wird eine Ausnahme ausgelöst: DependencyResolutionException.
Die offizielle Dokumentation erklärt: Konfigurieren Sie die Komponente so, dass jede abhängige Komponente oder jeder Aufruf zu Resolve() innerhalb eines ILifetimeScope, der von einer eigenen Instanz erstellt wurde, dieselbe geteilte Instanz erhält. Abhängige Komponenten in Lifetime-Scopes, die Kinder des Owned-Instanz-Scopes sind, teilen sich die Instanz des Elternteils. Wenn kein geeigneter Owned-Instanz-Scope in der Hierarchie gefunden werden kann, wird eine DependencyResolutionException geworfen.
5、SingleInstance
Jedes Mal, wenn du auf eine Komponente angewiesen bist oder die Resolve()-Methode aufrufst, erhältst du dieselbe gemeinsame Instanz. Tatsächlich handelt es sich um ein Einzelmodell.
Die offizielle Dokumentation erklärt: Konfigurieren Sie die Komponente so, dass jede abhängige Komponente oder jeder Aufruf zu Resolve() dieselbe geteilte Instanz erhält.
6、InstancePerHttpRequest
Im Kontext einer HTTP-Anfrage teilen Sie eine Instanz einer Komponente. Nur für asp.net MVC-Entwicklung verfügbar. Die offizielle Dokumentation erklärt: Teile eine Instanz der Komponente im Kontext einer einzelnen HTTP-Anfrage. Offizieller Dokumentationslink: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html
|