問題タブ [inversion-of-control]

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 投票する
39 に答える
608335 参照

oop - 制御の反転とは

制御の反転 (IoC) は、最初に遭遇したときに非常に混乱する可能性があります。

  1. それは何ですか?
  2. どの問題を解決しますか?
  3. いつ使用するのが適切で、いつ使用しないのですか?
0 投票する
12 に答える
164386 参照

c# - 調べる価値のある .NET 依存性注入フレームワークはどれですか?

調べる価値のある C#/.NET 依存性注入フレームワークはどれですか? そして、それらの複雑さと速度について何と言えますか。

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

visual-studio - IoC/DIを使用するときに必要なライブラリをbinフォルダーに入れる方法

Castle Windsorを使用して依存性注入を行っています。具体的には、現在DIによってロードされているインターフェイスにDALレイヤーを抽象化しました。

プロジェクトが開発およびデプロイされると、すべての.binファイルが同じ場所に配置されますが、Visual Studioで開発している間、依存関係が挿入されたプロジェクトの.binファイルをスタートアッププロジェクトのbinに取得する唯一の方法を確認できます。フォルダは、それをコピーするビルド後のイベントを持つか、ファイルをプルするためにDALプロジェクトへの手動参照を入れるかのいずれかです。

私はどちらの解決策にも完全にわくわくしているわけではないので、この問題を解決するための「標準的な」方法があるかどうか疑問に思いました。

0 投票する
4 に答える
1788 参照

dependency-injection - IoCコンテナの構成/登録

ますます複雑化するエンタープライズサービスのシステムで依存関係を切り離すには、絶対にIoCコンテナを使用する必要があります。私が直面している問題は、構成(別名登録)に関連する問題です。現在、開発から本番、そしてその間の4つの異なる環境があります。これらの環境には、環境ごとにわずかに異なる多数の構成があります。ただし、現在考えられるすべてのケースで、コンポーネント間の依存関係は環境ごとに異なりません。ただし、何かを見逃したり、明らかに変更されたりする可能性があります。

したがって、最終的な質問は、IoCフレームワークを使用して同様の経験をした人はいますか?または、ある種の規則や簡略化された構成情報を通じて柔軟な登録を提供するフレームワークを他のフレームワークよりも推奨できる人はいますか?それでも流暢なインターフェースの恩恵を受けることができるのでしょうか、それともXMLに固執しているのでしょうか?XMLを避けたいのです。

編集:これは.Net環境であり、Windsor、Ninject、およびAutofacを見てきました。Autofacのラムダ式のサポートは他の方法とは少し異なるようですが、これらはすべて登録の両方の方法(流暢とXML)をサポートしているようです。誰かが同様のマルチデプロイメント環境でそれを使用しますか?

0 投票する
4 に答える
1028 参照

c# - StructureMap のような IC コンテナーに関連するオーバーヘッド コストはどれくらいですか?

IoC に関する最近の Alt.NET グループに参加した後、利用可能なツールと、それらがどのように機能するかについて考えるようになりました。 StructureMap特に、属性とブートストラップの概念の両方を使用して、 のリクエストを にマップIThingしますConcreteThing。属性は、リフレクションまたは IL インジェクションのいずれかが進行中であることを示すフラグを自動的にスローします。これがどのように機能するか (StructureMapまたは他の IoC ツールの場合) と、関連するオーバーヘッドが実行時またはコンパイル時にどのようになるかを正確に知っている人はいますか?

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

.net - Castle Windsor: xml にない工場施設への呼び出しをどのように追加しますか?

XML を使用してファクトリのメソッドからの参照を解決するよう Castle Windsor に指示する方法は知っていますが、Container.AddComponent() インターフェイスを介してプログラムで解決できますか? そうでない場合、コードからそれを行う他の方法はありますか?

編集: 混乱があるようですので、明確にさせてください。コードで次のことを行う方法を探しています:

( windsor と spring.net の工場サポートに関するこの codebetter 記事から)

0 投票する
4 に答える
601 参照

c# - タイプを使用せずに多くのマネージDLLをロードするのは悪いことですか?

背景:私の会社では、同じコアdllを使用する多数のアプリケーションを開発しています。これらのdllは、Spring.netのIoCコンテナを使用して接続します(自動配線)。すべてのアプリケーションは同じSpring構成ファイルを使用しており、この構成ファイルは多くの異なるdllの多くのクラスを指しています。ただし、すべてのアプリケーションがすべてのdllの機能を必要とするわけではありません。ただし、IoCコンテナの動作方法により、すべてのdllがSpring.netに読み込まれ、タイプを調べて、実装されているインターフェイスなどを確認します。

主要な質問:実際に使用しているdllをロードする方がよいことを理解しています。しかし、マネージDLLをロードするだけでメモリ使用量が本当に悪いのでしょうか。それとも、最初にdllでクラスを使用していて、最も多くのメモリが使用されているとJITされていますか?

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

c# - Where to put the dependency injection framework config file?

I've got a solution with several different projects in it, some are pure class libraries and some are web app projects. If I want my default types to be available to all projects, where should I put the config file for the container?

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

.net - Windsor Container: オブジェクトを強制的に破棄する方法は?

Windsor Container に登録されている IDisposable を実装するオブジェクトがあり、それを破棄して、Dispose メソッドが呼び出され、次に Resolve が呼び出されたときに新しいインスタンスをフェッチするようにしたいと考えています。

する

Dispose() をすぐに自動的に呼び出しますか? それともする必要がありますか

リリースが正確に何をするかについてのドキュメントには何も見つかりませんでした

編集: 私が実行したテストの結果については、以下の回答を参照してください。問題は、シングルトン ライフサイクルを持つコンポーネントのインスタンスをコンテナに強制的にリリースさせるにはどうすればよいかということです。これは 1 か所で行うだけで済みますが、カスタム ライフサイクルを記述するのは非常に重いように思えます。それを行う組み込みの方法はありませんか?

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

c# - 型の既存のインスタンスを Windsor Container に登録できますか?

Windsor IOC コンテナーでは、コンテナーで作成する代わりに、既にインスタンスを取得している型を登録することはできますか?