Qualsiasi buon esempio di utilizzo di Ninject con un servizio di Windows? Non sono sicuro di cosa succederebbe se avessi bisogno di estensioni. Inoltre, non è sicuro di quale dovrebbe essere il Root di composizione? Qualche buon esempio di utilizzo di Ninject con un servizio Windows?Utilizzo di Ninject con un servizio di Windows
risposta
Un servizio Windows non differisce molto da una normale applicazione della riga di comando in relazione all'iniezione delle dipendenze. La radice di composizione diretta è il tuo metodo Main
.
Il modo in cui l'ho fatto in genere è creare lo StandardKernel
con un modulo in cui sono state risolte le mie dipendenze. Quindi utilizzare kernel.Get
per risolvere le dipendenze di primo livello - tutto il resto seguirà da lì:
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);
}
Utilizzando Ninject con TopShelf .. eseguire vs installare (start) ho affrontato un problema strano in cui > MyService.exe run
funziona bene con il codice Kernel.Bind(handlers => { var bindings = handlers.From("abc.dll") ... }
Ma quando avvio il servizio dopo l'installazione utilizzando > MyService.exe install
che non ha potuto risolvere le associazioni di cui la scansione di assemblaggio Ninject.
Dopo qualche ora di rompere la mia testa ...
cambiare il .From(...)
-.FromAssembliesMatching(...)
ho potuto avviare il servizio con successo.
Spero che aiuti qualcuno.
- 1. Utilizzo di Prism con Ninject
- 2. Utilizzo della vista di debug con un servizio di Windows
- 3. Ninject with Windows Application
- 4. Utilizzo di Thread.Sleep() in un servizio di Windows
- 5. Console.WriteLine() all'interno di un servizio di Windows?
- 6. Utilizzo di InstallUtil per installare un servizio di Windows con parametri di avvio
- 7. Utilizzo dei valori di parametro predefiniti con Ninject 3.0
- 8. Utilizzo di Ninject con Asp.NET Web API Beta ApiController
- 9. Utilizzo di ASP.NET MVC 2 con Ninject 2 da zero
- 10. Aggiornamento automatico di un servizio di Windows
- 11. Utilizzo di Fiddler con autenticazione di Windows
- 12. Aggiornamento silenzioso di un servizio di Windows
- 13. Servizio Windows con timer
- 14. Servizio Windows con strumento di gestione WPF
- 15. WCF con lancio di Ninject ArgumentNullException
- 16. Come creare un servizio Windows con parametri?
- 17. Strano problema con un servizio Windows .NET
- 18. Installazione di un servizio Windows sviluppato autonomamente
- 19. Problema con il test di un servizio Windows
- 20. avvio di un processo da un servizio Windows .NET
- 21. Arresto di un servizio Windows multithreading
- 22. Utilizzo di uglifyjs con nodejs in windows
- 23. Utilizzo di SC per installare un servizio Windows e quindi impostare le proprietà di ripristino
- 24. Invia messaggio Windows a un servizio Windows
- 25. filesystemwatcher come servizio di Windows?
- 26. Test dell'unità di servizio primaverile con utilizzo di mockito
- 27. Utilizzo di IOM Ninject per sostituire una fabbrica
- 28. Installazione di un'applicazione Topshelf come servizio Windows
- 29. Come utilizzare Ninject in un'applicazione Windows Form?
- 30. Utilizzo dell'autenticazione Windows con php?
Microsoft ha un modo per iniettare i moduli di Ninject (o il kernel) più in alto in modo da non dover eseguire alcuna localizzazione di servizio? (non un grosso problema per solo un paio di dipendenze - solo curioso) –
No. Non che tu stia iniziando molto come un'app per console. Potresti prendere un approccio modello astratto di fabbrica (o metodo di fabbrica) per creare il tuo servizio, se hai bisogno di farlo. –
Dan, il metodo Main è il punto di partenza. Le soluzioni per le applicazioni Web, ecc. Sono in realtà soluzioni alternative perché un'applicazione Web non ha un buon punto di partenza. –