問題タブ [ninject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - Ninjectは本番アプリケーションに適していますか?
誰かが本番アプリケーションでNinjectを使用したことがあるかどうか疑問に思いますか?そして、どのような長所と短所を知っておく必要がありますか?
inversion-of-control - StructureMap 2.5.3 で規則ベースのバインドを行うことはできますか?
Ninject の最も優れた機能の 1 つは、規則に基づくバインディングです。例えば。
http://ninject.codeplex.com/Wiki/View.aspx?title=規約に基づく%20Binding&referringTitle=Home
これは StructureMap 2.5.3 で可能ですか?
ありがとう
ninject - StructureMapのObjectFactory.GetInstance()メソッドに相当するNinjectを探しています
MVCプロジェクトでNinjectを使用しており、Ninject.Mvcの自動登録機能を使用して、アプリケーションクラスでバインディングを設定しています。ただし、これらのバインディングとは別にインスタンスを作成したい場所があります。StructureMapで実行でき、var foo = ObjectFactory.GetInstance<IFoo>();
解決されます。Ninject 2に同等のものはありますか?どこにも見つからないようです。
dependency-injection - Ninjectv1でのIKernelのリセット
Ninjectのv1で問題が発生し、StandardKernelをリセットしています。カーネルへのアクセスを提供するために使用する静的オブジェクトがあります。
問題は、さまざまな単体テスト(MSTestを使用)またはフィットネスフィクスチャでObjectFactoryを使用しようとすると発生します。新しいテストやフィクスチャの前に常にObjectFactory.Reset()メソッドを呼び出しますが、Resetが実際には機能せず、元のバインディングがそのまま残っているように見える場合があります。Ninjectのv2でIKernelオブジェクトをリセットする方法があることは知っていますが、まだその動きをする準備ができていません(そしてそれは私たちにとってかなり重要な動きです)。
なぜこれが発生するのかについて誰かがアドバイスを提供できますか?異なるランナーの別々のスレッドでテストが実行される方法に関連していると思いますが、どうすれば回避できますか?
前もって感謝します
ninject - NinjectModuleから継承するクラスを作成しました。今どこにロードしますか?
NinjectModuleから継承するクラスを作成し、すべてのバインディング呼び出しでLoad()メソッドをオーバーライドした後、asp.net Webアプリケーションのどこでninjectをセットアップしますか?(MVC)
作成する必要があるのはhttpmoduleですか?global.asax?
dependency-injection - Ninject:クラスライブラリに注入するにはどうすればよいですか?
まず、Ninject1.5を使用しています。Webプロジェクトとクラスライブラリの2つのプロジェクトがあります。私のDI構成はWebプロジェクト内にあります。私のクラスライブラリ内で、次のように定義されています。
そして、CategoryCacheServiceと呼ばれる具象クラス。
私のWebプロジェクトでは、次の2つをバインドします。
私のクラスライブラリには、HtmlHelperクラスの拡張メソッドがあります。次に例を示します。
静的プロパティに挿入できないと言われましたが、代わりにKernel.Get <>()を使用する必要があります-しかし...上記のコードはクラスライブラリにあるため、カーネルにアクセスできません。この時点からカーネルを取得するにはどうすればよいですか、またはこれを行うためのより良い方法はありますか?
c# - C#、Ninject: カーネルとモジュールをどこに置きますか?
現在、コア アセンブリと winforms アセンブリで構成される小さな C# アプリケーションを作成しています。このような小さなことでは、おそらく Ninject は必要ないかもしれませんが、試してみたいと思います。
とにかく、Ninject を使用するには、返されるクラスをマップする一連のモジュールを作成する必要があることを理解しました。その後、インスタンスを作成しIKernel
てモジュールをロードします。
しかし、これらのモジュールはどこに保管すればよいのでしょうか? また、カーネルはどこに保管すればよいですか? 物はどこへ行く?
constructor - 他の非依存のコンストラクター引数を使用したコンストラクターインジェクション
私はIOCコンテナーを初めて使用し、NInjectを使い始めています。
コンストラクターにサービスではなく、IOCコンテナーによってインスタンス化する必要のないパラメーターを持たせたい場合は、どうしますか?
例えば:
その名前がPersonクラスの要件であると想像してください。したがって、Personが常に名前を持つようにするには、その名前をコンストラクターに渡す必要があります。
NInjectを使用してPersonのインスタンスを取得するにはどうすればよいですか?名前は、アプリのどのビットが新しいPersonを作成するかによって渡される必要がありますが、IOCコンテナはIPersonRepositoryを渡す必要があります。
代わりにプロパティを使用して名前またはリポジトリのいずれかを挿入できることは理解していますが、これはクリーンなソリューションではありません。プログラミング言語のセマンティックパワーの一部が失われています。
assemblies - NInjectはオンデマンドでモジュール/アセンブリをロードできますか?
Unityで行われているように、オンデマンドで他のモジュール(アセンブリ)からサービスをロードできるようにする機能がNInjectにありますか?