問題タブ [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 投票する
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が必要なデフォルトのクラスであると言ったという事実を無視しているようです。

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

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

inversion-of-control - 通常、StructureMap Registry クラスをソリューションのどこに配置しますか?

現在のレイアウトは次のとおりです。

解決:

    • ドメイン
    • インターフェース
  • データアクセス

    • プロバイダ
    • セッション
  • サービス

  • UI

  • 単体テスト

  • 統合テスト

私は通常、コア ドメイン エンティティ/POCO を外部依存関係をあまり多くせずに、できるだけ軽量に保つようにしています。そのため、サービス レイヤーには通常、すべてのレイヤーへのプロジェクト参照があるため、それをサービス レイヤーに配置するのが理にかなっているかもしれないと考えていました。

CodeCampServer では、IoC 構成用に DependencyResolution という別のプロジェクトを実際に作成していることに気付きました。

http://code.google.com/p/codecampserver/source/browse/trunk#trunk/src/DependencyResolution

考え?

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

structuremap - Structuremap を使用する本当のオープン ソース プロジェクト?

structuremap と DI コードの配置/構造化の方法を学びたいのですが、ガイダンスとして参照できる StructureMap を使用するオープン ソース プロジェクトはありますか?

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

webforms - WebフォームとDIオブジェクトのインスタンス化を使用したMVPパターン

データを永続化するために汎用リポジトリパターンを使用しています。PageLoadで、(IRepositoryから)新しいリポジトリを作成し、PageUnloadで、それを破棄します。

MasterPage / Pageは、プレゼンターに渡すオブジェクトのインスタンス化を担当する必要がありますか、それともプレゼンターがこれを担当する必要がありますか?プレゼンターに渡されるインターフェイスをモックする方が簡単なので、ページ(表示)よりもプレゼンターのテストに関心があります。

サンプルページ

この場合、StructureMapやNinjectなどのDIフレームワークは役に立ちますか?このような物の処分を担当するのでしょうか?

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

asp.net-mvc - ASP.NET MVC: HTTPContext と依存関係の挿入

現在、HttpContext から現在のユーザー名を取得し、それをサービス メソッドで使用するアクションに渡す ActionFilter があります。例えば:

アクション レベルではなく、コントローラー コンストラクター レベルでこれを行う理由ができました。現在、構造マップを使用してコントローラーを作成し、サービスを注入しています。私は次のようなものを見ています:

とはいえ、これは私が使用した最初のプロジェクトであるため、私の IoC foo は非常に弱いです。

だから私の質問は...構造マップにHttpContextUserProviderのコンストラクターでHttpContextを渡すように指示するにはどうすればよいですか? これは奇妙に思えます... HttpContextの考え方がわかりません。