問題タブ [contextual-binding]
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.
parameters - ninject2.0のパラメーターベースのバインディング
渡されたパラメータに基づいて、ninjectで条件付きバインディングを使用したいと思います。私は以下のようなものを持っています:
そして今、私はITargetインターフェースをインスタンス化する必要があります:
適切なバインディングを定義するのに問題があります。私は次のことを試しました:
しかし、渡されたパラメータの値を取得する方法がわかりません。IContextインスタンスをGetValueメソッドに渡す必要がありますが、IContextの有効なインスタンスを取得する方法がわかりません。それとも、私のタスクを達成するためのより良い方法がありますか?
編集:BindingMetadataは私の問題を解決するためのより良い方法です。詳細については、Ninject2.0を使用したコンテキストバインディングを参照してください。
よろしく
parameters - Ninject 2.0 によるコンテキスト バインディング
Ninject 1.0 では、次のバインディング定義がありました。
そのようなバインディングを考えると、私は電話をしました:
最初の呼び出しは Target1 のインスタンスに解決され、2 番目の呼び出しは Target2 のインスタンスに解決されました。
これを Ninject 2.0 に変換するにはどうすればよいですか?
ninject - AutofacとNinjectのコンテキストバインディング?
1) Autofac と Ninject のどちらがコンテキスト バインディングに適していますか?
2) Ninject を使用すると、特定の名前空間の型にバインドできます。
Autofacでこれを行うことはできますか?
ありがとう!
(私の英語でごめんなさい)
.net - 実行時にコンテキストバインディングを挿入する
NinjectContextualBindingを理解しようとしています。設計時に自分のコンテキストを知っているシナリオを理解しています。たとえば、名前付き属性を使用して、テストクラスで使用する場合はDBオブジェクトをモックDBにバインドし、実際のコードから使用する場合はSQLDBにバインドできることを理解しています。
ただし、実行時にコンテキストバインディングを処理する方法がわかりません。たとえば、私がショッピングセンター用のソフトウェアを書いているとしましょう。店主は、請求にキーボードまたはバーコードスキャナーを使用できます。事前にどちらを使うのかわかりません。そして彼は将来、RFIDのような他のスキャン方法を追加するかもしれません。
だから私は次のことをしています:
では、どうすれば最小限のカスタムコードでそれを実行できますか?コンテキストバインディングに関する記事/ウィキ/チュートリアルへのリンクではなく、特定のコード例をリクエストしたいと思います。
binding - 上を検索して型を見つける Ninject Binding Constraint
私はこのようなクラス階層を持っています(簡略化):
IConnectionConfiguration と IService の複数の実装があります。次のプロバイダー/バインディングを作成したいと考えています。
- Connection の新しいインスタンスを構築します。
- GetAll を取得し、それを Connection に適用します。
- バインディングは、構築される IService のタイプに基づいて、使用される IConnectionConfiguration 実装を指定します。
現在、次のようなプロバイダーの実装があります。
しかし、 IConnectionConfiguration のコンテキストバインディングを作成しようとすると、親リクエストまたは親コンテキストがありません...
ここで何が間違っていますか?ninjectでこれを行うことはできますか?
internationalization - Drupal7: Contextual filter: Content: Nid が Views3 の NID ではなく TNID を返す方法
Contextual フィルターがあります: Content: Nid in Views3 that I want to return the TNID instead of the NID When the filter value is NOT available .
私は試した
また
および[デフォルト値の提供:PHP コード]フィールド内のその他。何も機能しませんでした。
ninject - ニンジェクトゲットWhenTargetHas
だから私はNinject、具体的には次のようなコンテキストバインディングを使用しています:
Kernel を使用して特定のインスタンスを取得する必要があり、 Condition に基づいて実行したいと考えていますWhenTargetHas<T>
。次のようなものは素晴らしいでしょう。
条件に基づいてインスタンスを取得するにはどうすればよいですか?
inheritance - Ninjectバインディング「すべてxから継承」
ごく普通のシナリオ:
次のように、A からのすべての継承を解決する Ninject バインディングを作成できるかどうか、本当に疑問に思います。
もちろん、これはタイプ A のリクエストに対してのみ機能します。B と C のリクエストは、デフォルトの方法で処理されます。
前もって感謝します
ninject - Ninject.Activation.IRequest Target プロパティが null になる原因
おそらく簡単な質問ですが、ドキュメントや SO で直接答えられるものは見つかりませんでした。
初めてNinjectWhen(Func<IRequest, bool> condition)
拡張メソッドを使用する必要があり、null オブジェクトの例外で少しハングアップしました。IRequest.Target
プロパティが nullの場合があることがわかり、null のチェックを使用する他の 例もいくつか見ました。When
Target
Ninject が の値を持たずにコールバックを実行する条件に興味がありますTarget
。フォームのバインディングを作成する場合
私は当初、バインディングが実行されているときに有効なTarget
型が常に存在すると誤って想定していました。T1
ninject - コンテキスト バインディングと Lazy に関する Ninject の問題
Ninject は、 Lazy<T>も使用しているときにWhenInjectedInto contstraintを正しく使用していないようです。次の例を確認してください。OnLandAttackとOnLandAttackLazyはそれぞれSamuraiインスタンスを使用する必要があります。しかし、Lazy<T> バージョンはSpecialNinjaインスタンスで終わります。コンストラクターで実際に初期化されていないためだと思いますか?しかし、タイプはまだ正しく登録されているはずです。何か不足していますか?参考までに、これは Ninject 3.2.2 と Ninject.Extensions.Factory 拡張機能 3.2.1 を使用しています