問題タブ [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 に答える
590 参照

inversion-of-control - StructureMap:文字列以外のコンストラクター引数を使用したEqualToAppSetting

与えられた

いつ

次に、StructureMapは次の例外をスローします

文字列以外の引数でEqualToAppSettingを使用する方法はありますか?

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

asp.net-mvc - ASP.NET MVCコントローラーに依存性を注入するさまざまな方法はありますか?

私がWebで見たほとんどのサンプルでは、​​MVCコントローラーのDIは次のように実行されます

カスタムControllerFactoryが使用され、選択したDIフレームワークを利用して、リポジトリが挿入されます。

上記がより良いと考えられるのはなぜですか

これでも同じ結果が得られますが、カスタムコントローラーファクトリは必要ありません。

テストに関する限り、テストアプリは個別のBootStrapperを持つことができます。そうすれば、コントローラーがテストされているときに偽のリポジトリーを取得でき、実際に使用されているときに本物のリポジトリーを取得できます。

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

asp.net-mvc - NHibernate がデータベースから新しいデータを取得できません

ASP.NET MVC アプリケーションのデータ アクセス層として NHibernate を使用しています。また、構造マップを IoC コンテナーとして使用しています。セッション ファクトリをシングルトンとして作成し、リクエストごとにセッションを作成するように Structre マップを構成しました (InstanceScope.Hybrid)。基本的な CRUD 操作は問題なく実行できます。

現在、バックグラウンド プロセスが 30 秒ごとに実行されており、いくつかのリポジトリ (セッションを使用) を使用しています。そして、このバックグラウンド プロセスは、何らかの理由で新しいデータを取得できません。多分私は簡単なことを見逃しています。私はグーグルを試しましたが、有用なものを見つけることができませんでした. 誰かが私を正しい方向に向けてくれたら、本当に助かります。

編集:

2 番目のレベルのキャッシュが有効になっているかどうかわかりません。NHibernate の初心者です。休止状態の構成ファイルを以下に貼り付けます。

私が知りたい主なことは、NHibernate を使用した典型的な Web アプリケーションで既に使用されている設計/設計パターンがあるかどうかです。また、データベース設定が別のアプリから更新された場合、ステートレス セッションを使用すると問題が解決しますか?

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

structuremap - 構造マップ-私は最も貪欲なコンストラクターを使いたくありません!

プロジェクトで構造マップを使用してNCommonNHRepositoryを構成しようとしています。最も貪欲なコンストラクターを選択しないようにするにはどうすればよいですか?

私の構造マップ構成

乾杯ジェイク

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

dependency-injection - StructureMap を使用しているときに循環参照を検出してデバッグする方法はありますか?

最近は、よりシンプルで再利用しやすい小さなオブジェクトを多数使用しています。ほとんどの場合、StructureMap (優れたツールです) を使用してこれらのオブジェクトを互いに挿入しても問題はありません。しかし、時々、私は失敗し、スタック オーバーフロー例外 (tm) を装って素敵な循環参照を取得します。

最後のテスト実行以降の最近の変更をすべて確認する以外に、StructureMap は循環参照をデバッグするためのメカニズムを提供していますか、またはこの状況で役立つ簡単なツールはありますか?

みんな、ありがとう!

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

structuremap - Structuremap 構成: 1 つのオブジェクト、複数のインターフェース

タイプ「SessionObject」のこのオブジェクト「mySessionObject」があります。IMessageHandler<MessageA>インターフェイスと を実装しますIMessageHandler<MessageB>。これらのオブジェクトの 1 つだけを保持し、HttpSession 全体を通じて有効にする必要があります。

HttpSession の有効期間中にいつでもObjectFactory.GetInstance<IMessageHandler<MessageA>>()、またはを呼び出して取得できるように、構造マップに登録するにはどうすればよいObjectFactory.GetInstance<IMessageHandler<MessageB>>()ですか?

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

.net - 引数を指定したり、DefaultConstructor 属性を使用したりせずに、StructureMap でデフォルト コンストラクターを定義する

私はしばらくの間 S​​tructureMap を使用してきましたが、専門家にはほど遠いものです。私の問題は単純です。コード (レジストリ) を介して SM を構成し、リポジトリ オブジェクトのインスタンスを作成するときに特定のコンストラクターを使用しようとしています。

これが私の2つのコンストラクターです(どちらも貪欲ではないことに注意してください)。

注: 最初のコンストラクターはIDatabaseインターフェイスのインスタンスを受け取り、基本クラスの ctor(IDatabaseFactory) 実装によって呼び出されます。

私がやろうとしているのは、2 番目のコンストラクターを使用しDatabaseFactoryて SM コンテナーからのインスタンスを提供するように SM を構成することです。[DefaultConstructor]が定義されているアセンブリで属性を使用できないため、BusinessUnitRepositoryこのオプションはテーブルから外れています。

私の登録コード

プログラム SM を実行すると、 のインスタンスを作成しようとすると 302 エラーがスローされますBusinessUnitRepository

ご参考までに:

  • Repository.LinqToSql.BusinessUnitRepository アセンブリで StructureMap を参照し、IDatabaseFactory コンストラクターで [DefaultConstructor] 属性を使用すると、すべてが完全に機能します。
  • また、StructureMap に構成済みの「Repository.LinqToSql.DatabaseFactory」が含まれていることも確認しました。
0 投票する
3 に答える
1730 参照

wpf - MVVM と StructureMap の使用

MVVM アプリケーションには、非常に多くの親詳細 ViewModel があります。このようなもの:

等々...

さらに、ユーザーがレッスン単位でブラウジングしているか生徒単位でブラウジングしているかなどに応じて、単一のビュー モデルが複数の場所に表示される場合があります。

各子ビュー モデルは親ビュー モデルによって作成されるため、ビュー モデルの多くは子ビュー モデルの依存関係を渡す必要があります。たとえば、SchoolsViewModel のコンストラクターは次のようになります。

これらすべてを扱いやすくする通常の方法は、StructureMap などの DI フレームワークを使用して、必要なすべての引数をビュー モデルに渡すことです。ただし、この場合、私のアプリケーションは通常、SchoolsViewModel のみを作成するため、これは使用が制限されます。

私の最初の質問は、この場合、SchoolsViewModel が各依存関係を各子ビュー モデルに渡すようにするか、それとも各ビュー モデルが ObjectFactory.GetInstance() を使用して子ビュー モデルを作成するようにするかということです。おそらく、ファクトリ クラスを介して DI フレームワークへの依存関係を抽象化するのでしょうか?

これに関連する別の質問があります: MVVM: locating other ViewModels

編集:もっと意見が欲しいので、これについて報奨金を出しました。