Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20690|Antwort: 1

[Quelle] Zusammenfassung der Methodik der Autofac-Erstellung von Instanzen

[Link kopieren]
Veröffentlicht am 05.01.2018 21:25:48 | | |

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




Vorhergehend:asp.net Site-Verzeichnis-Datei Get ist leer
Nächster:GeckoFx Firefox Kernel-Ersatz, System-Pop-up-Warnung deaktivieren
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com