Wie kann ich die Abhängigkeit Resolver-Instanz in Web API erhalten? In asp.net mvc kann ich DependencyResolver.Current
tun, gibt es eine Entsprechung in Web API?Wie Instanz des Abhängigkeits-Resolvers in ASP.NET-Web-API erhalten
12
A
Antwort
9
Ignorieren Sie, was die Leute über ein Anti-Pattern sagen. Insbesondere mit diesen jungen Technologien werden Sie keine vollständige DI-Abdeckung erhalten. Zum Beispiel hat zum Zeitpunkt des Schreibens NInject
keine Unterstützung für die Injektion in Middlewares.
Um Ihre Frage zu beantworten, ist der Abhängigkeits-Resolver für eine Anfrage unter HttpRequestMessage.GetDependencyScope()
verfügbar. Sie können auch HttpConfiguration.DependencyResolver
verwenden. Beachten Sie jedoch, dass dieser Bereich für die Ausführung der Anforderung nicht ordnungsgemäß definiert ist.
Ich würde empfehlen, die Dokumentation für die spezifische IOC-Implementierung zu überprüfen.
Verwandte Themen
- 1. Erhalten erste Instanz und Erhalten letzte Instanz String
- 2. Erhalten Namen Enum-Instanz
- 3. Erhalten Instanz Hauptfenster Controller in AppDelegate
- 4. Instanz des Werttyps in Julia
- 5. Den Bezeichnernamen einer Instanz in Python erhalten
- 6. Schnelle Instanz des Protokolls
- 7. Functor Instanz des Status
- 8. Wie behandelt eine Instanz des AmazonEc2Client Netzwerkunterbrechungen?
- 9. Instanz des untergeordneten Objekts in iframe abrufen
- 10. Wie erhalten Sie den Prädiktionswert für eine Instanz in weka?
- 11. Wie Doctrine ORM-Instanz in Symfony2-Konsole-Anwendung erhalten?
- 12. Wie die `BroadcastReceiver` Instanz erhalten, die in` AndroidManifest.xml`
- 13. Instanz des generischen Typs erstellen?
- 14. AngularJS get Instanz des Fabrikobjekts
- 15. Keine Instanz des überladenen Funktionsfehlers
- 16. Ist diese Instanz des Anwendungsfehlers?
- 17. Erhalten des Service Locator überall in ZF2
- 18. UIautomator wie Kind zu erhalten, indem Index oder Instanz
- 19. Wie erstellt man eine neue Instanz des Typs in Typescript?
- 20. Wie die Instanz des Kendogrid in angular2 Komponente
- 21. Programmatisch erhalten Instanz der View-Controller
- 22. Erhalten einer RenderScript-Instanz durch Bildschirmdrehung
- 23. So erhalten Sie Instanz von Instrumentation in Java
- 24. Erhalten Konstruktor/Instanz von Gattung Typoskript
- 25. erhalten die gleiche Instanz einer Basisklasse
- 26. kann keine Service-Instanz von $ injector.get() erhalten
- 27. MVVMLight Zugriff auf die MainViewModel-Instanz erhalten
- 28. Wie Sie eine Instanz von javax.imageio.spi.IIORegistry mit korrektem Gültigkeitsbereich erhalten
- 29. C# - Namespace Wide Instanz des Klassenobjekts
- 30. Index des Tupelelementtyps erhalten?
Wahrscheinlich kennen Sie das schon, aber ich muss Ihnen die obligatorische Warnung geben: Sie sollten zulassen, dass der Dependency Resolver die notwendigen Abhängigkeiten in Ihre Klassen einfügt, indem er den Api Controller als Kontextstamm verwendet und nicht auf der Suche nach dem Abhängigkeits-Resolver. – StriplingWarrior
Ja, der Grund, warum ich den Resolver verwenden muss, ist innerhalb eines benutzerdefinierten Modellbinders, der mit dem Modelbinder-Attribut anstelle eines Modellbinderanbieters festgelegt wird. Daher wird er mit einem parameterlosen Konstruktor instanziiert, sodass ich den Service verwenden muss Ort, um die Abhängigkeiten zu erhalten. – ryudice
Nur ein Hinweis: http://stackoverflow.com/questions/21919753/. Bitte nehmen Sie es als eine andere Ansicht - warum "IDependencyResolver" zu vermeiden. ServiceLocator könnte/sollte als Antipattern angesehen werden http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx –