問題タブ [castle-windsor]
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.
inversion-of-control - StructureMap を使用したコンテナの連鎖
WindsorContainer.AddChildContainer() のように、StructureMap でコンテナーをリンクすることはできますか?
3 つのコンテナ レベルを実現したい。- 1 ページ要求レベル - 1 セッション レベル - 1 アプリケーション レベル
これらはチェーン化されるため、「基本レベル」のコンテナーに対して 1 つのインスタンス要求のみが行われます。
コンテナーのレベルは実際には重要ではなく、それらをリンクする機能があるかどうかだけです。
c# - ActiveRecord/NHibernate: 永続性を認識しないコンテキストでの遅延コレクションの処理
私の Web アプリケーション (MonoRail、Windsor、ActiveRecord) には、開始可能なインポート サービスと 1 つ以上の開始可能なインポート リーダーがあります。たとえば、ファイルがディレクトリにドロップされると、リーダーはファイルを解析し、データをサービスに渡します。サービスは、リポジトリを介してオブジェクトを更新および/または作成します。私が抱えている問題は、これらの Startable サービスがリクエスト スコープ (Begin から End までの SessionScope がある場所) の外に存在することです。そのため、サービスが遅延コレクションに遭遇したときに、その魔法を実行するのに役立つ SessionScope が周りにありません。キュー LazyInitializationException :)。
これをうまく解決する方法はありますか?おそらくインターセプターを使用して、データを処理するメソッドの周りに SessionScope を作成および破棄しますか? 熱心なフェッチを実行するメソッドをリポジトリに装備しますか? サービスに ActiveRecord を認識させないようにしたいのは、私の依存パラノイアが、いつか別の永続化メカニズムを使用したいかもしれないと言っているからです。
.net - Castle Windsor: 自分の構成でイベントを接続するにはどうすればよいですか?
私はこのようなものを持っています:
現在、アプリケーションの起動ファイルで
xml を介して城の構成ファイルを使用してこの配線を行うことは可能だと思います。しかし、どのように?
.net - ResolveAll の機能
IOCでは何をしResolveAll
ますか?? 公式の答えは「このタイプに一致するすべての有効なコンポーネントを解決する」であることを知っています。これは、特定のインターフェイスを実装する任意のクラスを返すということですか?
.net - Castle Windsor構成ファイルを使用して、別のアイテム宣言に委任することは可能ですか?
Castle-Windsorを使用すると、型を1回宣言して、毎回完全に書き出すのではなく、この宣言を複数のIDに使用できます。
たとえば、IFooを実装するクラスWidgetがあり、キー「IFoo.A」と「IFoo.B」でCastleからウィジェットを取得する必要があります。こんなことしたい
それから
ありがとう。
asp.net-mvc - ASP.NET MVC のベータ版へのアップグレード: IControllerFactory は、参照されていないアセンブリで定義されています
現在、ASP.NET MVC のプレビュー 2 からベータ リリースにサイトを更新している最中です。徹底的な検索の後、サイトに解決策がなく、最後のコンパイルエラーに陥っています。Windsor コンテナーを使用して IOC を設定するコードが Global.asax.cs にいくつかあります。
コンパイラは次のように不平を言っています。
奇妙なことは、このアセンブリが参照されていることです。MVC ベータ アセンブリ フォルダーから参照し、ローカルにコピーするように設定します。bin ディレクトリを削除して再構築し、リフレクターでアセンブリを表示してインターフェイスを確認することもできます。参照を削除して再度追加し、web.config のアセンブリと名前空間のセクションを変更してみました。System.Web.Mvc を GAC から削除して、正しいコピーが使用されていることを確認しました。
この質問を書いているときに、Windsor が古いバージョンのアセンブリを内部的に期待している可能性があることに気付きました。これが問題であるかどうかを判断するために MvcContrib から最新のものをダウンロードしています。結果を投稿します。この場合、アセンブリのバージョン番号を最新のリリースで変更して、これを明確にするべきではありませんか?
読んでくれてありがとう、ブレット
inversion-of-control - Castle Windsor - Null コンストラクター引数
Castle Windsor を使用して null コンストラクタ引数を渡すにはどうすればよいですか? 私は次のことがうまくいくと思った
xml - Castle Windsor: ワイヤアップ xml ファイルを複数のファイルに分割するにはどうすればよいですか?
少し前のサンプルで、windsor 構成ファイルを複数のファイルに分割し、それらが自動的に解析されるように app.config から参照できることを覚えています。
もちろん、私はそれをブックマークしていませんでしたが、今では見つけることができず、Windsor.Config.xml ファイルは 600 行にまで増えています。誰でもこれを行う方法を教えてもらえますか?
現在、コンテナをファイルから直接インスタンス化するだけです。 IWindsorContainer container = new WindsorContainer("Windsor.Config.xml");
しかし、私はそれを分割し、app.config で xml を参照して、自動的に含めたいと思います。
c# - IoCコンテナの使用; 特にウィンザー
この質問への答えは非常に明白なので、誰もこれについて書くことを気にしませんでしたが、遅く、私は本当にこれについて頭を悩ませることができません。
私はIoCコンテナー(この場合はWindsor)を読んでいますが、コードのさまざまな部分からコンテナーと通信する方法がわかりません。
私はDIを取得し、poor mans DI(デフォルトのパラメーター実装でオーバーロードされたインジェクションコンストラクターを呼び出す空のコンストラクター)をしばらく行ってきましたが、コンテナーの利点を完全に確認できます。ただし、重要な情報が1つ欠けています。コンテナからのサービスが必要になるたびに、どのようにコンテナを参照することになっていますか?
渡す単一のグローバルな保険を作成しますか?絶対にありません!
私はこれを呼ぶべきだと知っています:
(たとえば)XML構成をロードしたいのですが、コンテナーをどうすればよいですか?その後、毎回新しいコンテナを作成して、ロードされた構成を内部の静的マジックなどで永続化しますか、それとも毎回構成をリロードする必要がありますか(そうでないか、ライフサイクルが機能しませんでした)。
これを理解できないと、ライフサイクルがどのように機能するかを理解できなくなり、IoCの恐ろしさを使い続けることができなくなります。
ありがとう、
アンドリュー
inversion-of-control - キャッスル ウィンザー: プログラムでリスト パラメーターをコンテナーに渡す方法は?
型を解決するときにリスト コンストラクターのパラメーターを渡すことは可能ですか? 可能であれば、プログラムによる構成を使用したいと考えています。以下に示すように、私は Parameters メソッドをいじっていますが、まだ答えに出くわしていません。
DoSomething クラスは次のようになります