問題タブ [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.
c# - Ninjectモジュールの目的は何ですか?
私は完全な初心者です
私は他の誰かのコードを分解していて、nInjectモジュールのいくつかのインスタンスを見つけました-Ninject.Modules.Moduleから派生したクラスであり、それらのコードのほとんどを含むloadメソッドがあります。
これらのクラスは、StandardKernelのインスタンスのLoadModuleメソッドを呼び出し、それにモジュールクラスのインスタンスを渡すことによって呼び出されます。
ここで明らかな何かが欠けているかもしれませんが、単純な古いクラスを作成してそのメソッドを呼び出すだけでなく、静的メソッドを使用して静的クラスを呼び出すよりも、これの利点は何ですか?
c# - NinjectIOCを使用して工場を置き換える
パーサー内にファクトリメソッドがあります。基本的に、トークンをロードするときに、そのトークンのハンドラーを検索するか、デフォルトのハンドラーにドロップスルーします。私はこれをswitch
ととして実装しましたDictionary<string,Type>
が、どちらのアプローチでも、ハンドラークラス以外の場所にマッピングを保存する必要があります。
Ninject for IOCを使用しているので、次の方法でも実行できることに気付きました。
しかし、それでは、ハンドラーが2つの場所で処理できるトークンに関する情報を保存する必要はありません。ハンドラーを装飾して、これが自動的にマップされるようにする方法はありますか?
winforms - Ninject を使用して、外部で構築されたオブジェクト (ユーザー コントロール) に依存関係を注入する
WinForms アプリケーションで Ninject を使用したいと考えています。ユーザーコントロールに使用する方法がわかりません。DI フレームワークを介して構成したいサービスに依存する場合もあります。これらのコントロールは、デザイナーを通じて管理できる必要があります (したがって、既定のコンストラクターが必要です)。
では、このユーザー コントロールのプロパティに依存関係を挿入する方法はありますか? デザイナーはそれを構築できる必要があるため、kernel.Get<TestClass>
ここでは機能しません。メソッドの依存関係を「埋める」ことができるメソッドまたはコードはありForm_OnLoad()
ますか?
既存のオブジェクトのプロパティに挿入したい他の例も考えられますが、WinForms ユーザー コントロールが最も簡単に説明できます。
asp.net - NInject で依存関係を配線するためのオプション
NInject (できれば 2.0) では、Web アプリケーションでオブジェクトの依存関係を結び付けるためにどのようなオプションがありますか?
それらは XML 構成ファイルで定義できますか?
それとも、コードを介して行う必要がありますか?
dependency-injection - 注入された依存関係に値を注入する
私はこのようなものを持っています:
そして、ninject を使用してルートへの参照を取得しようとしています。だから私はこのように設定します
Dependency に、ninject からルート参照を取得する時点でのみ知られている「val」値を注入したいと思います。
私がやりたいことは次のようなものです:
ninject 1.0を使用してこのようなことは可能ですか?
dependency-injection - .net用のシンプルで実用的で堅牢なIOC/DIフレームワークを探しています
経験の浅い開発者がいるプロジェクトで使用するので、Spring.NETなどの複雑なフレームワークはオプションではありません。私は考えていました:
- 注入する
- キャッスルウィンザー
- StructureMap
柔軟性を失うことなく、適度な学習曲線を示すのはどれですか?
そして別の質問-構成を置く正しい場所はどこですか?3層ASP.NETアプリケーションのカーネル/構成(MVCではありません!!!すべての例でMVCを使用しています:))
c# - NInject with Generic interface
1つのインターフェースと1つのクラスを定義しました。
ここに注入します:
Ninjectを使用して依存性注入を実行するにはどうすればよいですか?バインドする方法を教えてください。
私は以下のようにヘルパークラスを作成しました、それは非ジェネリックインターフェースでうまく動作します。しかしそれをリファクタリングする方法は上記のようにジェネリックインターフェースをサポートしますか?
c# - コンストラクターで追加のパラメーターを使用して Ninject を使用してインスタンスを作成する
Ninject の使用を開始し、問題に直面することにしました。次のシナリオがあるとします。IService
インターフェイスと、このインターフェイスを実装する 2 つのクラスがあります。また、 IService とintを取得するコンストラクターを持つクラスもあります。Ninject を使用してこのクラスのインスタンスを作成するにはどうすればよいですか (この int を配線したくありません。インスタンスを取得するたびに渡したいのです)。
状況を示すコードを次に示します。
design-patterns - クラス ライブラリ内での Ninject カーネルの作成
Ninject で配線した依存関係を持つクラスがあります。
実際の実装ではプロパティ注入を使用していますが、簡単に説明するために、フィールドに注入します。私が理解しているように、MyObject のインスタンスを新規作成する代わりに、依存関係を適切に注入するために、使用する必要があります
しかし、私がつまずいたのは、MyObject はクラス ライブラリのコンテキストでのみ使用されるということです。目的は、エンド アプリケーションが独自のモジュールを作成し、それをカーネル インスタンスに渡してハイドレートすることです。それを考えると、Ninject カーネルのジェネリック インスタンスをクラス ライブラリに提示して、MyObject (および他の同様のケース) のインスタンスをハイドレートできるようにするための最も実用的な方法は何ですか?
私の最初の傾向は、シングルトン カーネルを内部化するある種のファクトリです。アプリケーション自体は、モジュールをロードしてハイドレート/初期化する必要があります。
だからRandomService.csで
ただし、この道を進みすぎる前に、健全性チェックを行って、考え方が正しいこと、または他に見落としている明らかなものがないことを確認する必要があります。私は明らかに IoC の初心者であり、基本を理解しているように感じますが、必ずしもそれを実際に使用するための最良の方法ではありません。