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

0 投票する
7 に答える
19228 参照

ninject - Ninject サンプル アプリケーション?

依存性注入と IOC の使用を開始したいと考えており、Ninject の使用をさらに深めたいと考えています。

Ninject を使用して記述されたソースコードが利用可能な、参照として参照できる優れたアプリケーションはありますか?

0 投票する
9 に答える
13799 参照

c# - アーキテクチャのようなプラグインでNinjectを使用する

私はDIを学んでいて、最近最初のプロジェクトを作成しました。

このプロジェクトでは、リポジトリパターンを実装しました。私はインターフェースと具体的な実装を持っています。私のプログラムが動的にロードする「プラグイン」、dllとして私のインターフェースの実装を構築することは可能かどうか疑問に思います。

したがって、プログラムを再構築しなくても、時間の経過とともにプログラムを改善できます。dllを「プラグイン」フォルダに配置し、設定を変更して、ボイラーを作成するだけです。

これは可能ですか?Ninjectはこれを支援できますか?

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

asp.net-mvc - ASP.NET、Ninject、および MVC: パフォーマンス負荷の問題

問題の説明: このモデルは一度に 1 人のユーザーで問題なく動作します。一度に複数のユーザーを取得するとすぐに、SqlDataReader を閉じていないことに関連する深刻なエラーが発生します。このように遅延読み込みをオフにすると:

persistenceModel.Conventions.OneToManyConvention = (prop => prop.SetAttribute("lazy", "false"));

それは問題ありませんが、パフォーマンスは遅いです。これは MVC ベータ 1 を使用します

何かご意見は?

以下に、グローバル ASAX と SessionFactory 初期化コードのスニペットを示します。

************ これは私の GLOBAL.ASAX にあります ********

***** これは私の NHibernateHelper.cs です ******

0 投票する
0 に答える
885 参照

asp.net - asp.netセッション状態のNinject

フレームワークの統合から BasePage と BaseMaster を使用して、Web アプリケーションで Ninject を使用しています。私がやりたいのは、オブジェクトを注入し、セッションごとに新しいインスタンスを作成することです。OnePerRequest の動作を見てきましたが、近いですが、完全ではありません。私がやっていることは多くの計算を実行することであり、それらの変数はページに挿入されるオブジェクトに保持されます。ポストバックのためにそれらのオブジェクトを保持する必要がありますが、ユーザーがサイトに「アクセス」するたびにオブジェクトの新しいインスタンスが必要です。私の最初の考えは、ポストバック間の値を保存するために何らかの方法で Asp.net セッション オブジェクトを使用することでした。これは、Ninject の前に行う方法です (オブジェクトをセッションに保存するだけです。できれば正しい方法です。他の提案も受け付けています。シングルトンを使用することを考えましたが、各ユーザーはオブジェクトの独自のコピーが必要になります。そうしないと、お互いの計算を踏むことになります。

それが明確であることを願っています。既存の動作を使用するか、独自の動作を作成するかについてアドバイスをいただければ幸いです。おそらく、アプリケーション キャッシュまたは組み込みの ASP.NET キャッシュを使用するとうまくいく可能性があります。

ありがとうございました

ジョシュ

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

.net - 依存性注入フレームワークを使用した優れたオープンソース プロジェクト?

Ninject フレームワークまたは別のプロジェクトを実装するオープン ソース プロジェクトについて知っている人はいますか?私は以前に DI フレームワークを使用したことがなく、Ninject は私の注意を喚起します。

すでに実装されているコードを確認するとき、私はより多くのことを把握する傾向があります。

また、さまざまな DI フレームワークを使用した別の優れたプロジェクトについて知っている場合は?

ありがとう、

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

c# - Ninject OnePerRequestBehaviour が正しく動作していないようですか?

Web アプリの IOC として Ninject を使用しています。それは素晴らしく、うまく機能すると思いますが、いくつかのインターフェイス/クラスを OnePerRequestBehaviour として登録しようとしましたが、実際には動作を使用していないようです。コードは正しく実行されますが、私のクラスの 1 つで、データベースからページ情報を遅延読み込みし、読み込まれた後はデータベースにアクセスする必要はありません。

私の問題は、遅延ロードされたプロパティが最初のリクエストでロードされ、次のページをリクエストすると、クラスの同じインスタンスが使用されることです。私がこれを知っている理由は、クラスが再度インスタンス化されておらず、遅延ロードされたプロパティが既に設定されているためです。

このコードは私のモジュールクラス内にあります:

次に、NinjectHttpApplication から継承する Global.asax 内に次のものがあります。

CmsService への最初の呼び出しは、global.asax 内と、authenticate_request で行われます。

上記の GetCurrentPage() コード:

ご覧のとおり、_currentPage 変数は、以前に設定されていない場合にのみロードされます。これはリクエストごとに 1 回行う必要がありますが、Ninject はリクエストごとに CmsService を作成していないようです。時間。

なぜこれが私にとって機能しないのか、またはそれが確実に機能する場所のサンプルコードを知っている人はいますか?

ありがとう

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

c# - 特定のシナリオで ninject/autofac を使用する

私はいくつかのプロバイダーを持っています、例えば -

これらの各プロバイダーは、私にセッションを与えることができます:

現在、プロバイダーを調べ、タイプをインスタンス化し、URL を (手動で) 挿入することで、「名前付き」セッションをインスタンス化しています。

おそらくURLを理解し、適切なセッションを返す必要があるセッションファクトリを使用できます。

これを ninject/autofac でよりエレガントに/簡単に処理する方法はありますか?

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

c# - NInject: カーネルへの参照はどこに保管していますか?

新しい Web アプリケーションで NInject を使用していますが、不明な点が 2 つあります。

  1. GC がすべてのインスタンスを収集しないようにするために、カーネル (セッション/アプリ変数) への参照を保持する必要はありませんか? たとえば、.Using() を指定して Kernel オブジェクトが収集された場合、すべての「シングルトン」も収集されませんか?

  2. Kernel オブジェクトへの参照を維持する必要がある場合、WithArguments() に渡された引数を変更できるようにするにはどうすればよいですか、またはそれは不可能です。

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

c# - NInject で OnePerSessionBehavior を実装する

NInject (v1.0) 用の OnePerSessionBehavior を作成したいのですが、ほとんど動作しています。残っている唯一の問題は、新しいセッションがコンテナーから何かを要求するたびに .WithArguments() を使用して新しい引数を渡す方法です。現在、コンテナへの参照をアプリケーション変数として保持しているため、モジュールは一度しかロードされないため、もちろんバインディングは一度しか発生しません。

たとえば、次の例では、新しいセッションごとに「Something」の個々のインスタンスが返されますが、すべてのセッションに渡されるコンストラクター引数は同じ DateTime です。