WindowsサービスでNinjectを使用する良い例はありますか?私が必要とする拡張機能がどういうものかは分かりません。また、Composition Rootはどのようなものでなければなりませんか?そこにWindowsサービスとNinjectを使用する任意の良い例ですか?WindowsサービスでNinjectを使用する
18
A
答えて
19
Windowsサービスは、依存関係注入に関して通常のコマンドラインアプリケーションとあまり変わりません。単純なコンポジションルートは、Main
メソッドです。
私が通常やったやり方は、自分の依存関係が解決されたモジュールでStandardKernel
を作成することです。そして、トップレベルの依存関係を解決するためにkernel.Get
を使用 - 他のすべてはそこから続く:
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);
}
1
TopShelfと...実行VSインストール(起動) 私は> MyService.exe run
はコードで正常に動作奇妙な問題に直面しましたKernel.Bind(handlers => { var bindings = handlers.From("abc.dll") ... }
しかし、私はそれはNinjectアセンブリスキャンで述べたバインディングを解決できませんでした> MyService.exe install
を使用してインストールした後にサービスを開始します。私の頭を壊すの数時間後
...
が.FromAssembliesMatching(...)
に.From(...)
を変更私は正常にサービスを開始することができます。
誰かを助けることを願っています。
関連する問題
- 1. WCFサービスを使用するNinject Diバインディング
- 2. Windowsサービスでocxファイルを使用する
- 3. WindowsサービスでThread.Sleep()を使用する
- 4. linqtoexcelをWindowsサービスで使用する
- 5. NinjectをHttpClientで使用する方法
- 6. Windowsサービス内のタイマーを使用する
- 7. Windows Phone - Java Webサービスを使用する
- 8. Windowsサービスを使用するバルーンツールチップC#
- 9. Windowsサーバー2008 SMTPサービスでウェブサイトを使用
- 10. Ninjectを使ってサービスを設定する
- 11. wcfサービスWindowsフォームアプリケーションの使用
- 12. WebアプリケーションのAppdomain内のWCFサービスでNinjectを使用していますか?
- 13. Windowsサービスを使用してWindows資格情報をバイパスする
- 14. NInjectインスタンス化する複数のサービス
- 15. Ninject注入サービスの寿命
- 16. Ninjectを使用したコンストラクタインジェクション
- 17. Windowsサービスでのinropservices.powerpointの使用
- 18. Windowsサービスでのデバッグビューの使用
- 19. Ninject + Windows Formsアプリケーション(C#、VS 2010)
- 20. C#を使用してWindowsサービス(C#で記述)を使用
- 21. TPLを使用してWindowsサービスでポーリングジョブを実行する
- 22. WIXを使用してWindowsサービスをパラメータで登録する
- 23. WindowsサービスでFilewatcherを使用してコマンドラインプロセスを制御する
- 24. デフォルトのパラメータ値をNinject 3.0で使用
- 25. c#windowsサービスでCACLSを使用する方法
- 26. Windowsユニバーサルアプリケーションでデュプレックスwcfサービスを使用する方法
- 27. Windows Phone 7でXML-RPCサービスを使用するアプリケーション
- 28. OnStartタイマーではなくタスクを使用するWindowsサービス
- 29. Windowsサービスとwin32アプリケーションの間でIPCを使用するC++
- 30. WindowsサービスでAzureキューを使用するc#
マイクロソフトでは、Ninjectモジュール(またはカーネル)を上位に注入してサービスを探す必要はありませんか? (ちょうど2つの依存のための大したことではない - ちょうど興味がある) –
いいえ。コンソールアプリケーションのように起動しているわけではありません。必要な場合は、サービスを作成するための抽象ファクトリ(またはファクトリメソッド)パターンのアプローチをとることができます。 –
Dan、Mainメソッドが出発点です。 Webアプリケーションなどのソリューションは実際には回避策です。なぜなら、Webアプリケーションには良い出発点がないからです。 –