Alle guten Beispiele für die Verwendung von Ninject mit einem Windows-Dienst? Ich bin mir nicht sicher, ob Erweiterungen nötig sind. Auch nicht sicher, was die Composition Root sein sollte? Gibt es gute Beispiele für die Verwendung von Ninject mit einem Windows-Dienst?Verwenden von Ninject mit einem Windows-Dienst
Antwort
Ein Windows-Dienst unterscheidet sich nicht wesentlich von einer regulären Befehlszeilenanwendung hinsichtlich der Abhängigkeitsinjektion. Der einfache Kompositionswurzel ist Ihre Main
Methode.
Die Art, wie ich es normalerweise getan habe, ist die StandardKernel
dort mit einem Modul, in dem meine Abhängigkeiten aufgelöst werden. Dann kernel.Get
verwenden, um die Top-Level-Abhängigkeiten zu lösen - alles andere von dort folgen:
static void Main(string[] args)
{
var kernel = new StandardKernel(new FooModule());
var barDependency = kernel.Get<Bar>();
System.ServiceProcess.ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new FooService(barDependency) };
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
Mit Ninject mit Topshelf .. laufen vs installieren (Start) konfrontiert ich ein seltsames Problem, bei dem > MyService.exe run
funktioniert gut mit dem Code Kernel.Bind(handlers => { var bindings = handlers.From("abc.dll") ... }
Aber wenn ich starten sie den Dienst nach > MyService.exe install
mit der Installation nicht die Bindungen in Ninject Montage Scannen erwähnt lösen könnte.
Nach ein paar Stunden den Kopf zu brechen ...
Ändern der .From(...)
-.FromAssembliesMatching(...)
i den Dienst erfolgreich starten konnte.
Ich hoffe, es hilft jemandem.
- 1. Verwenden von Ninject mit Owin und InRequestScope
- 2. Wie verwenden Sie die Methodeninjektion mit Ninject?
- 3. Verwenden von Ninject WCF-Erweiterung mit WCF-Webdienst
- 4. Integrationstest mit Ninject
- 5. Ninject Injection aller Instanzen eines generischen Typs mit Ninject
- 6. Verwenden von Ninject IOC zum Ersetzen einer Fabrik
- 7. Ninject Logger mit NLog
- 8. Kompilierungsfehler mit Ninject
- 9. Verwenden von Ninject zum Binden von WebApi-Filterattributen
- 10. Ninject mit MembershipProvider | Roleprovider
- 11. Zyklische Abhängigkeit mit Ninject
- 12. Wie Ninject in WPF-Anwendung zu verwenden
- 13. WPF App mit Ninject
- 14. Wie Instanz von Ninject
- 15. Verwenden von Ninject 3.0 für einen bestimmten Code
- 16. Verwenden von NSubstitute und Ninject, um einen Wert zurückzugeben
- 17. With.Parameters.ConstructorArgument mit Ninject 2.0
- 18. Generic Decorator Muster mit ninject
- 19. Replace Ninject mit Simple Injector
- 20. Sollte OWIN Self-Host-App mit Ninject OWINHost System.web verwenden?
- 21. Ninject: Registrieren einer bereits erstellten Instanz mit Ninject?
- 22. Injection AutoMapper Abhängigkeiten mit Ninject
- 23. Aktualisieren Ninject/Ninject WCF-Erweiterungen auf die neueste Version 3.0.0.5
- 24. wie Ninject intercept mit InterceptAttribute
- 25. Implementieren von OnePerSessionBehavior in NInject
- 26. Ninject Get Instance von Kernel
- 27. Ninject mit ASP.Net Webforms und MVC
- 28. Lebensdauer von Ninject injiziert Service
- 29. Ninject-Abhängigkeit Bindung von xml
- 30. Auflösen der Verbindungszeichenfolge mit Ninject
Hat Microsoft eine Möglichkeit, Ninject-Module (oder den Kernel) höher zu injizieren, so dass Sie keine Service-Lokalisierung durchführen müssen? (keine große Sache für nur ein paar Abhängigkeit - nur neugierig) –
Nein. Nicht, dass Sie ähnlich wie eine Konsolen-App starten. Sie können eine abstrakte Factory-Methode (oder Factory-Methode) für die Erstellung Ihres Service verwenden, wenn Sie dies tun müssen. –
Dan, ist die Main-Methode der Ausgangspunkt. Die Lösungen für Webanwendungen usw. sind eigentlich Umgehungslösungen, da eine Webanwendung keinen guten Ausgangspunkt hat. –