Ninject 2 の変更点によると、NinjectはCommon Service Locatorをサポートしていますが、どのように使用すればよいですか? マニュアルやサンプルが見つかりません。
1 に答える
Ninject2 のダウンロードには、CommonServiceLocator.NinjectAdapter.dll
(zip ファイルの「extensions」フォルダーに) が含まれています。この dll とNinject.dll
をプロジェクトに追加します。
アプリケーションのスタートアップ パス (Ninject カーネルの構成後) で、次のコードを使用できます。
IKernel ninject = ...;
var locator = new NinjectServiceLocator(ninject);
ServiceLocator.SetLocatorProvider(() => locator);
Common Service Locator (CSL) は、IoC コンテナーの抽象化を提供し、静的ファサード (Service Locator パターンを実装する) を含むライブラリであることに注意してください。これは、開発者が特定の IoC 実装に依存することを防ぐために使用できる共通のインターフェイスです。CSL は、フレームワーク開発者にとって特に便利です。アプリケーション開発者は、依存性注入 (DI) パターンを使用することをお勧めします。DI が正しく使用されている場合、アプリケーションで CSL を使用する必要はありません。フレームワークの開発には CSL の方が適していますが、それでも CSL の使用には疑問があります。ほとんどの場合、適切な設計を行うことで、このような共通インターフェイスの使用をなくすことができると考えています。