問題タブ [ioc-container]

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 に答える
2316 参照

castle-windsor - Web フォーム Web サイト プロジェクトでキャッスル ウィンザーを接続する方法

既存の Web フォーム アプリケーションに依存性注入を導入しようとしています。プロジェクトは、(Web アプリケーション プロジェクトではなく) Web サイト プロジェクトとして作成されました。global.asax.cs でグローバル クラスを作成するサンプルを見てきましたが、次のようになります。

しかし、Web サイト プロジェクトでグローバル クラスの追加を要求すると、サーバー側のスクリプト タグを含む global.asax のみが追加されます。

ここで HttpApplication (および IContainerAccessor) から派生させる方法はないようです。それとも、明らかな何かが欠けていますか?

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

asp.net-mvc - MVC を次のレベルに引き上げる: DI と Unit of Work

これまで、Nerddinner や ContactManager などの単純なアプリケーションだけでなく、Kigg などのより複雑なアプリケーションも調べてきました。私はより単純なものを理解していますが、今はより複雑なものを理解したいと思っています。

通常、より単純なアプリケーションには、LINQtoSQL または Entity Framework の上にリポジトリ クラスとインターフェイス (できる限り疎結合) があります。リポジトリは、必要なデータ操作を行うためにコントローラーから呼び出されます。

Kigg や Oxite などのより複雑なアプリケーションを調べるときによく目にするパターンの 1 つに、次のようなものがあります (ここでは表面をなぞっただけですが、どこかから始めなければなりません)。

  • IOC DI (Kigg の場合は Unity)
  • Web リクエスト ライフタイム マネージャー
  • 作業単位

ここに私の質問があります:

本当に疎結合のアプリケーションを作成するには、Unity のようなものを使用する必要があることを理解しています。しかし、Unity をミックスに導入した瞬間に、Web Request Lifetime Manager も導入する必要があるようにも思えます。何故ですか?Nerdinner のようなサンプル アプリケーションに Web Request Lifetime Manager がないのはなぜですか? それは正確に何をしますか?Unity固有のものですか?

私が気付く 2 番目のパターンは、Unit of Work の導入です。繰り返しますが、同じ質問です。Nerddinner または ContactManager が Unit of Work を使用しないのはなぜですか? 代わりに、これらのアプリケーションは、Linq2Sql または Entity Framework の上にあるリポジトリ クラスを使用してデータ操作を行います。作業単位の兆候はありません。それは正確には何であり、なぜそれを使用する必要があるのですか?

ありがとう

以下は、DinnersController レベルでの Nerddiner の DI の例です。

したがって、最初のコンストラクターのためにコントローラーがDinnerRepositoryを「所有」しているため、そこで宣言されているため、コントローラーの寿命に依存すると仮定するのは正しいですか?

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

c# - Unity (依存性注入): RegisterType のコンストラクターにパラメーターを渡す方法

誰でも助けることができますか?

私はwpfアプリを持っています(問題ではないはずです)。Onstartにはブートストラップのものがあります..このようなものです..

基本的に ISecurityService は ISecurityRepository を渡すことを期待しているため、上記は失敗します。

しかし、私は少し混乱しています。新しい IsecurityRespository を作成してから渡す必要がありますか?これはオブジェクトを無効にしますか?

とにかく、「コンテナーから ISecurityRepository を SecurityService に渡す」と言いますが、まだ構築されていませんか?

何か案は?

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

c# - Ninject 2.0コンストラクタパラメータ - デフォルトコンストラクタも存在する場合の設定方法は?

私は IOC コンテナーを初めて使用し、Ninject を学習しています。Github から新たにダウンロードしたバージョン 2.0 を使用しています。

デフォルトのコンストラクターも存在する場合、コンストラクターに文字列パラメーターを設定しようとしています。私は Ninject のソースを調べてきましたが、不足しているものを簡単に特定するために使用されているパターンについて十分に理解していません。

これが私のテストコンソールアプリです:

このコードはコンソールに "間違ったメッセージ :(" を出力します。TestClass のデフォルト コンストラクターを削除すると、"Hello World!" が表示されます。何が欠けているのでしょうか?

明確にするために、クラスに「Hello World!」を出力させたいと考えています。デフォルトのコンストラクターが存在するコンソールに。

0 投票する
5 に答える
14588 参照

java - Spring コンテナーで定義された Bean を変更する方法

springframework (バージョン 2.5.x) の Bean を定義する 2 つの xml ファイルがあります。

... と

sourceCodeLocations今私は Beancodebase内のプロパティを調整したいと思いますcontainerSpecial.xml。2 番目の値を追加する必要がありますsrc/generated/productive

簡単な方法codebaseは、 inの定義をオーバーライドして、元の値と新しいcontainerSpecial.xml値の両方の値を追加することです。containerBase.xml

Bean を再定義せずにリストを拡張する方法はありますか?

編集 2009-10-06:

containerBaseこれの目的は、多くの異なるプロジェクトで使用される共有標準コンテナーを持つことです。各プロジェクトは、そのプロジェクトに固有のいくつかのプロパティを独自の でオーバーライド/拡張​​できますcontainerSpecial。プロジェクトがオーバーライドされない場合は、 で定義されたデフォルトが使用されcontainerBaseます。

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

interface - 抽象クラスは、インターフェイスのように StructureMap で機能しますか?

私は StructureMap の大ファンで、ほぼすべての作業で使用しています。ただし、インターフェイスでのみ使用したことがあります。抽象クラスを使用した経験のある人がいるかどうか疑問に思っていましたか? それとも...そのタイプの配線をサポートしていませんか? これを機能させた場合、例を投稿できますか?

ありがとう!

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

.net - Castle Windsor v2 にアップグレードする必要がありますか?

Castle Windsor Container は、今年 5 月にリリースされたバージョン 2 にアップグレードするための評価を行っています。この時までに、コミュニティは新しいリリースについていくつかの経験を積んでいると思います...

私の主な懸念事項は次のとおりです。

  • v.2 にアップグレードする価値はありますか? (主要な重要な新機能やバグ修正はありますか?)
  • 移行はスムーズですか?それとも、いくつかの落とし穴や下位互換性がないものはありますか?
  • パフォーマンスの向上はありますか?

乾杯、ジェイコブ

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

asp.net-mvc - ASP.NET MVC の IModelBinder または IOC?

Scott Hanselman は、"<a href="http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx" rel="nofollow noreferrer">ASP の IPrincipal (User) ModelBinder. NET MVC を使用すると、テストが簡単になります」と彼は、このかなり防御的なコメントをしなければならないと感じました。

はい、これにも IoC コンテナーを使用できることがわかりました。

彼は、IModelBinderの代わりにIOC を使用できたということですか、それとも、 IModelBinderIOC と共に使用する必要があると言っているのですか? 汎用プログラミング言語を使用して非常に多くのことができることを理解した上で (今は防御的になっています)、現実のシナリオでは実際に何が行われているのでしょうか? たとえば、KiGGのようなプロジェクトは、IModelBinder をまったく使用していないようです。

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

dependency-injection - 実行時に指定されたオープンジェネリックとタイプのAutofac

ドキュメントには、Autofacがオープンジェネリックをサポートしていると記載されており、次のような基本的なケースで登録して解決することができます。

登録:

解決:

上記のコードは問題なく機能します。ただし、実行時までIFlattenerに提供されるタイプがわからないと仮定して、次のようなことを行います。

AutoFacでこれは可能ですか?StructureMapを使用して、次のアイデアからアイデアを得ました。

http://structuremap.sourceforge.net/Generics.htm

私はこの記事で概説されているのと同じ目標を達成しようとしています。

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

c# - Unity と WCF ライブラリ: wcf ライブラリで Unity をロードする場所は?

誰でも助けることができますか?

(アプリケーションではなく) WCF ライブラリを作成しました。これを SVC IIS ページでホストします。

しかし、ユニティのものを一般的な場所にロードしたかったのです... global.asaxにロードできましたが、IIS Asp.netコンテナに関連付けられており、TDDを実行すると、この部分は実行されないため、私の解決ではありません動作します。

WCF ライブラリは純粋なクラスなので、OnStartup などのイベントを使用できるとは思えませんか?

私が考えた唯一の方法は、サービスが基本クラスから継承するものと、ある種の静的クラスを呼び出してユニティのブートストラップを行うインターフェイス..

私は少し迷っています。これが唯一の方法ですか、それとも私が知らない方法があります。

基本的なアイデアは...誰がwcfライブラリを呼び出すか、ユニティインジェクションを行う必要がある..

何か案は?

ありがとう