問題タブ [ninject-2]
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.
aop - Ninject 2 で AOP を利用できますか?
Ninject を介して AOP を使用する方法の例を Web で見つけようとしています。外部ライブラリを使用せずに Ninject 2 で AOP が利用可能かどうかを誰かが確認できますか (つまり、Castle Windsor?)。
可能であれば、私が始めるのに役立つリソースへのリンクを投稿していただけますか?
aop - Ninject Interception Extension の Intercept インターフェイス メソッド
Ninject Interception 拡張機能をいじっています。これに関するIan Davis のブログ投稿は、傍受は常にインターフェイスではなく、実際のサービスの種類に基づいていることを示しています。たとえば、次のコードはIFoo
インターフェイスであるため効果がありません。
そしてもちろん、次のコードは次の場合にのみ機能しFoo.DoSomething
ますvirtual
:
アスペクト指向プログラミングに関して言えば、これはかなり明白な穴のように思えます。さまざまなサービスをモックするためにモック フレームワークを使用できるように、インターフェイスのプログラミングにはかなりの注意を払ってきましたが、実際のメソッド実装の大部分は仮想ではありません。モッキング フレームワークが、IFoo
私が求めていることを実行する with a メソッドを生成できる場合、Ninject もできるはずです。
したがって、私の質問は2つあると思います。
- Ninject Interception がインターフェイス メソッドへのバインドを許可しない理由はありますか?
- Ninject を動的な「ラッパー」クラスにバインドして、すべてのインターフェイス メソッドで特定の傍受アクションを実行し、呼び出しを実際の実装に渡す簡単な方法はありますか?
c# - Ninject 2: 1.5 の InjectPropertiesWhere に相当するものはありますか?
MVC プロジェクトで Ninject 1.5 を使用しています。それはうまく機能しますが、Ninject 2 があるので、アップグレードすることができました (さらに、1.5 では適切に機能しなかった要求ごとの動作を使用することもできました)。Ninject 1.5 にはInjectPropertiesWhere
機能がありましたが、Ninject 2 にはありません (少なくとも、以前にテストしたときはそうでした)。似たようなものはありますか?
の例InjectPropertiesWhere
:
asp.net-mvc - NinjectはASP.NETMVCでどのようにコントローラーを作成しますか?
これはばかげた質問かもしれませんが、私はNinjectソースを調べていますが、NInjectが独自のコントローラーファクトリを登録しているのを見ていません。また、アセンブリIControllerFactory
にクラスが表示されません。Ninject.Web.Mvc
私は何かが足りないのですか?Ninjectはどのようにしてコントローラーを作成し、パラメーターをコンストラクターに挿入しますか?
asp.net-mvc - NInjectとMVC3-[Inject]属性の代わりにDependencyResolverを使用する必要がありますか?
最近、MVC3とNinject2に移行しました。ほとんどのコードでコンストラクターインジェクションを使用していますが、Inject
属性を使用しなければならない場所もあります。Ninject2は独自のIDepencyResolver
インターフェースを登録します。DependencyResolver
クラスが名前空間の一部であるのは好きSystem.Web.Mvc
ではありません。その機能はMVCと厳密には関連していないためですが、現在、クラスが存在する場合は、次のことができます。
それ以外の
Ninject
したがって、クラスで名前空間を参照する必要はありません。DependencyResolver
そのように使用する必要がありますか?
asp.net-mvc - Ninject 2.2 複数バインディング
最近、ASP.NET MVC 3 アプリを Ninject 2.2 に更新しました。
以前は、メイン アプリに実装バインディングへの次のインターフェイスがありました。
さらに、メイン アプリによって読み込まれている別のアセンブリに次のものがありました。
これは以前は正常に機能し、より具体的な実装 (引数を持つもの) が認識されていました。ただし、Ninject 2.2 にアップグレードすると、次のエラーが発生しました。
これを引き起こしている 2.0 から 2.2 への変更と回避策はありますか?
c# - Ninjectを使い始める
dimecasts.netでNinjectの最初の2つの初心者向けチュートリアルを見ました。ここで、ASP.NETMVC3でNinject2.2を使用したいと思います。モデルをモックアウトしたビューが必要です。サービスを呼び出すときに、オブジェクトのインスタンスに設定されていないオブジェクト参照を取得します。
私はRazorを使用しています、彼は画期的な部分的なビューです
最後に、ホームビューインデックス
2013年11月20日編集
Ninjectはバージョン2.0をリリースしたことに注意してください。変更は彼らのサイトでうまく概説されています。注目すべきStandardModule
は現在NinjectModule
であり、名前空間Ninject.Core
はもう存在しません。に置き換えることができましたNinject
。
asp.net-mvc - Ninject.MVC3、DependencyResolver をサービス層に渡しますか?
Ninject.MVC 2.2.0.3 (マージ後) を使用した MVC3 アプリケーションでは、リポジトリをコントローラーに直接注入する代わりに、ビジネスロジックを含むサービスレイヤーを作成し、そこにリポジトリを注入しようとしています。ninject-DependencyResolver を動的オブジェクトとしてサービス層に渡します (mvc も ninject も参照したくないため)。次に、GetService を呼び出して、NinjectHttpApplicationModule で指定したバインディングと有効期間を持つリポジトリを取得します。編集:要するに、失敗しました。
この場合、どのように IoC コンテナーをサービス層に渡すことができますか? (異なるアプローチも大歓迎です。)
編集:これは、回答とコメントをどのように理解するかを示す例です。
サービス ロケーター(アンチ) パターンを避け、代わりに依存性注入を使用する必要があります。たとえば、Northwind で製品とカテゴリの管理サイトを作成するとします。テーブル定義に従って、モデル、リポジトリ、サービス、コントローラー、およびビューを作成します。この時点で、サービスはリポジトリを直接呼び出します。ロジックはありません。機能の柱があり、ビューには生データが表示されます。これらのバインディングは NinjectMVC3 用に構成されています。
リポジトリ インスタンスは、ProductController 内のコンストラクタ インジェクションの 2 つのレイヤを介して ninject によって作成されます。
および製品サービス:
今のところサービスを分離する必要はありませんが、データベースをモックする準備ができています。
製品/編集でカテゴリのドロップダウンを表示するには、製品に加えてカテゴリを保持する ViewModel を作成します。
ProductsService を作成するには、CategoriesRepository が必要になりました。
GET Edit-action を変更しreturn View(_productsService.GetProductViewModel(id));
、Edit-view をドロップダウンを表示するように変更します。
これに関する1 つの小さな問題であり、私が Service Locator で迷子になった理由は、ProductController の他のアクション メソッドがカテゴリ リポジトリを必要としないことです。必要がない限り作成するのはもったいないし、論理的ではないと思います。何か不足していますか?
asp.net-mvc-3 - SNAP(AOP)、NInject、ASP.NetMVC3を連携させる
誰かがMVC3とNinjectで動作するSNAPAOPフレームワークを手に入れましたか。
NuGetを使用してSnapをMVC3プロジェクトに追加するときに提供されるサンプルは、以前に追加されたNInjectパッケージでは特にうまく機能しません。通常のNInjectアプローチに基づいて動作させようとしましたが、実際にインターセプトすることができません。
誰かがこれをコードで行う方法を教えてもらえますか?
asp.net-mvc - MVC 3 依存関係リゾルバーまたは Ninject MVC プラグイン?
MVC 3 では、私が使用していた Dependency Resolver が追加されました。誰かがコメントした質問に答えるときは、Ninject MVC 3 プラグインを使用する必要があります。
だから私の質問は、なぜそれを組み込みのものよりも使用するのですか? それが行く方法である場合、どのようにセットアップしますか?
上記は私が答えた質問へのリンクです。