問題タブ [structuremap]

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

structuremap - Unity & StructureMap

UnityでこれのStructureMapに相当するものはありますか:

この小さなパターンに従おうとしています...

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

asp.net-mvc - ASP.NET MVC を使用した StructureMap - configure() メソッドは廃止されましたか?

IOC を使用してコントローラー インスタンスを構築するために、実際に StructureMAP ObjectFactory を使用している CustomControllerFactory を使用して、DefaultControllerFactory をオーバーライドしました。しかし、Controller インスタンスを見つけられず、それをフェイルオーバーする方法がいくつかあります。ノート。私はすでに Global.asax にも DEFaultControllerFactory を設定しています。レジストリを SM に登録する以外に、何かしなければならないことはありますか。

コントローラーを登録すると問題が解決することは理解していますが、defaultFactoryのようにコントローラーを自動的に検出できないのはなぜですか?

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

structuremap - StructureMap: オープン ジェネリックのデフォルト コンストラクターをどのように定義しますか?

次のようなオープンジェネリックを使用した構成があります。

リポジトリを構築するときに最も貪欲なコンストラクターを使用しないように SM に指示する必要があります。どうすればいいですか?

ForRequestedType<> を使用しているときは十分に簡単ですが、非ジェネリック バージョンでは実行できないようです。

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

c# - StructureMap を使用して名前付きインスタンスをキャッシュする

StructureMap にデフォルト以外のインスタンスをキャッシュさせる方法がわかりません。このようなコードでデフォルトのインスタンスをキャッシュできます

これは期待どおりに機能します。そして、名前付きインスタンスをうまく作成できます

しかし、セッションごとに「CurrentUser」をキャッシュしたいのですが、 .CacheBy() は CreatePluginFamilyExpression<> にのみ存在し、CreatePluginFamilyExpression<> から IsExpression<> に取得するように指示できる唯一の方法は、プロパティ TheDefault を使用することです。私はデフォルトを作成しますが、これは望ましくありません。

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

dependency-injection - ストラクチャーマップ 2.0 ドキュメント

私は DI/IOC メソッドを学び始めたばかりで、Structuremap からこれまでに見たものが好きです。問題は、現在のプロジェクトが .NET 2.0 に制限されているため、Structuremap の新しいバージョン (2.5) を使用できないことです。そうは言っても、誰かが v2.0 のドキュメントを教えてもらえますか? ほとんどの記事とチュートリアルは v2.5 を使用しており、以前のバージョンを使用しているのはほんの一部です。私が見つけたものは本質的に非常に基本的なものであり、Structuremap が提供するすべての機能を見たいと思っています。ありがとう

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

nhibernate - NHibernate で Activator.CreateInstance() の呼び出しを置き換えることはできますか?

エンティティを構築するために NHibernate 2.0.1GA 内で使用される Activator.CreateInstance() への呼び出しを置き換える方法はありますか? 理想的には、StructureMap.ObjectFactory.GetInstance() に置き換えたいと思います。

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

.net - カスタマイズされた構成 xml ファイルの使用方法

DI を行う方法として StructureMap を使用します。DI 構成として xml を使用します。2 つの質問があります。

1 つ目は、StructureMap.Config の代わりにカスタマイズされた xml ファイル名を使用する方法です。たとえば、私のコンソール アプリケーションで myDIStructure.config ファイルを使用する場合、main() で使用するクラスとメソッドは次のとおりです。

2 番目の質問は、構成ファイルでクラス タイプを使用してジェネリック インターフェイスを定義する方法です。たとえば、次のインターフェイスとクラスがあります。

次に、コンソール アプリケーションで、ProcessData インターフェイス タイプに PlugInFamily を使用し、MyProcessData に Plugin を使用したいと考えています。これがStructionMapで可能かどうかわからないのですが、どうすればよいですか?

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

c# - CTORのプリミティブ型の場合にStructureMapを使用する方法

クラスの次のCTORがあります。

次のコードを試して、DIマッピングを作成しました。

ObjectFactory.GetInstance <ILog>()からオブジェクトを機能させることができませんでした。私の場合、2つのプリミティブパラメーターがある場合、WithCtorArg()を使用してパラメーターを一致させることはできないと思います。そうですか?マッピングを登録する最良の方法は何ですか?

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

c# - IoC、Dll 参照、およびアセンブリ スキャン

この質問は StructureMap に関連していますが、私の一般的な質問は次のとおりです。

( xml経由で構成するのではなく)コードで IoC コンテナーを使用してコンポーネントを接続する場合、通常、すべてのアセンブリへの明示的なプロジェクト/ビルド参照が必要ですか?

なぜ別々のアセンブリですか?なぜなら:


「具体的な実装とは別のアセンブリに存在する抽象クラスは、そのような分離を実現する優れた方法です。」-フレームワーク設計ガイドライン p.91


例:

PersonBase.dllBob.dllがあるとします。

Bobは、抽象クラスPersonBaseから継承します。どちらもPerson名前空間にあります。しかし、別のアセンブリで

BobではなくPersonBaseにプログラミングしています。

メインコードに戻ると、人が必要です。StructureMap はアセンブリをスキャンできます。よし、StructureMap に頼んでみよう!

さて、私のメイン コードでは、もちろん、 BobではなくPersonBaseのみを参照しています。実際、自分のコードでBobについて何も知りたくありません。プロジェクトの参照も、nuthin もありません。それが要点です。

だから私は言いたい:

運がない。うまくいくのは、私がボブを欲しがっていることを明示することです:

しかし今、プロジェクトでBob.dllを参照する必要がありましたが、これはまさに私が望んでいなかったものです。

Spring + Xml 構成を使用して、この状況を回避できます。しかし、Spring + Xml 構成に戻ります ... !

StructureMap を使用して何か不足していますか、または一般的な原則として、(流暢な) IC 構成にはすべてのアセンブリへの明示的な参照が必要ですか?

おそらく関連する質問:StructureMap とスキャン アセンブリ

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

c# - 構造マップStackoverflow例外

「GetInstance」(最後の行)を呼び出すと、stackoverflow例外が発生し続けます。すべて、はいすべてのタイプがITrackerを実装しています。MultiTrackerには、ITrackerの配列である単一のパラメーターを持つコンストラクターがあります。

StructureMapは、タイプITrackerを要求するときにMultiTrackerが必要なデフォルトのクラスであると言ったという事実を無視しているようです。

私はそれを機能させることができません。何かご意見は?