14

Ninject 2 の変更点によると、NinjectはCommon Service Locatorをサポートしていますが、どのように使用すればよいですか? マニュアルやサンプルが見つかりません。

4

1 に答える 1

27

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 の使用には疑問があります。ほとんどの場合、適切な設計を行うことで、このような共通インターフェイスの使用をなくすことができると考えています。

于 2010-09-20T11:24:28.463 に答える