問題タブ [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.

0 投票する
1 に答える
3286 参照

aop - Ninject 2 で AOP を利用できますか?

Ninject を介して AOP を使用する方法の例を Web で見つけようとしています。外部ライブラリを使用せずに Ninject 2 で AOP が利用可能かどうかを誰かが確認できますか (つまり、Castle Windsor?)。

可能であれば、私が始めるのに役立つリソースへのリンクを投稿していただけますか?

0 投票する
1 に答える
913 参照

aop - Ninject Interception Extension の Intercept インターフェイス メソッド

Ninject Interception 拡張機能をいじっています。これに関するIan Davis のブログ投稿は、傍受は常にインターフェイスではなく、実際のサービスの種類に基づいていることを示しています。たとえば、次のコードはIFooインターフェイスであるため効果がありません。

そしてもちろん、次のコードは次の場合にのみ機能しFoo.DoSomethingますvirtual:

アスペクト指向プログラミングに関して言えば、これはかなり明白な穴のように思えます。さまざまなサービスをモックするためにモック フレームワークを使用できるように、インターフェイスのプログラミングにはかなりの注意を払ってきましたが、実際のメソッド実装の大部分は仮想ではありません。モッキング フレームワークが、IFoo私が求めていることを実行する with a メソッドを生成できる場合、Ninject もできるはずです。

したがって、私の質問は2つあると思います。

  1. Ninject Interception がインターフェイス メソッドへのバインドを許可しない理由はありますか?
  2. Ninject を動的な「ラッパー」クラスにバインドして、すべてのインターフェイス メソッドで特定の傍受アクションを実行し、呼び出しを実際の実装に渡す簡単な方法はありますか?
0 投票する
1 に答える
247 参照

c# - Ninject 2: 1.5 の InjectPropertiesWhere に相当するものはありますか?

MVC プロジェクトで Ninject 1.5 を使用しています。それはうまく機能しますが、Ninject 2 があるので、アップグレードすることができました (さらに、1.5 では適切に機能しなかった要求ごとの動作を使用することもできました)。Ninject 1.5 にはInjectPropertiesWhere機能がありましたが、Ninject 2 にはありません (少なくとも、以前にテストしたときはそうでした)。似たようなものはありますか?

の例InjectPropertiesWhere:

0 投票する
3 に答える
2057 参照

asp.net-mvc - NinjectはASP.NETMVCでどのようにコントローラーを作成しますか?

これはばかげた質問かもしれませんが、私はNinjectソースを調べていますが、NInjectが独自のコントローラーファクトリを登録しているのを見ていません。また、アセンブリIControllerFactoryにクラスが表示されません。Ninject.Web.Mvc私は何かが足りないのですか?Ninjectはどのようにしてコントローラーを作成し、パラメーターをコンストラクターに挿入しますか?

0 投票する
3 に答える
2071 参照

asp.net-mvc - NInjectとMVC3-[Inject]属性の代わりにDependencyResolverを使用する必要がありますか?

最近、MVC3とNinject2に移行しました。ほとんどのコードでコンストラクターインジェクションを使用していますが、Inject属性を使用しなければならない場所もあります。Ninject2は独自のIDepencyResolverインターフェースを登録します。DependencyResolverクラスが名前空間の一部であるのは好きSystem.Web.Mvcではありません。その機能はMVCと厳密には関連していないためですが、現在、クラスが存在する場合は、次のことができます。

それ以外の

Ninjectしたがって、クラスで名前空間を参照する必要はありません。DependencyResolverそのように使用する必要がありますか?

0 投票する
1 に答える
1091 参照

asp.net-mvc - Ninject 2.2 複数バインディング

最近、ASP.NET MVC 3 アプリを Ninject 2.2 に更新しました。

以前は、メイン アプリに実装バインディングへの次のインターフェイスがありました。

さらに、メイン アプリによって読み込まれている別のアセンブリに次のものがありました。

これは以前は正常に機能し、より具体的な実装 (引数を持つもの) が認識されていました。ただし、Ninject 2.2 にアップグレードすると、次のエラーが発生しました。

これを引き起こしている 2.0 から 2.2 への変更と回避策はありますか?

0 投票する
3 に答える
11949 参照

c# - Ninjectを使い始める

dimecasts.netでNinjectの最初の2つの初心者向けチュートリアルを見ました。ここで、ASP.NETMVC3でNinject2.2を使用したいと思います。モデルをモックアウトしたビューが必要です。サービスを呼び出すときに、オブジェクトのインスタンスに設定されていないオブジェクト参照を取得します。

私はRazorを使用しています、彼は画期的な部分的なビューです

最後に、ホームビューインデックス

2013年11月20日編集

Ninjectはバージョン2.0をリリースしたことに注意してください。変更は彼らのサイトでうまく概説されています。注目すべきStandardModuleは現在NinjectModuleであり、名前空間Ninject.Coreはもう存在しません。に置き換えることができましたNinject

0 投票する
1 に答える
5955 参照

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 の他のアクション メソッドがカテゴリ リポジトリを必要としないことです。必要がない限り作成す​​るのはもったいないし、論理的ではないと思います。何か不足していますか?

0 投票する
1 に答える
670 参照

asp.net-mvc-3 - SNAP(AOP)、NInject、ASP.NetMVC3を連携させる

誰かがMVC3とNinjectで動作するSNAPAOPフレームワークを手に入れましたか。

NuGetを使用してSnapをMVC3プロジェクトに追加するときに提供されるサンプルは、以前に追加されたNInjectパッケージでは特にうまく機能しません。通常のNInjectアプローチに基づいて動作させようとしましたが、実際にインターセプトすることができません。

誰かがこれをコードで行う方法を教えてもらえますか?

0 投票する
2 に答える
10112 参照

asp.net-mvc - MVC 3 依存関係リゾルバーまたは Ninject MVC プラグイン?

MVC 3 では、私が使用していた Dependency Resolver が追加されました。誰かがコメントした質問に答えるときは、Ninject MVC 3 プラグインを使用する必要があります。

だから私の質問は、なぜそれを組み込みのものよりも使用するのですか? それが行く方法である場合、どのようにセットアップしますか?

質問

上記は私が答えた質問へのリンクです。