問題タブ [structuremap3]
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.
constructor - StructureMap3 すべてのタイプのコンストラクター文字列注入を構成する方法は?
を使用してタイプを登録しました
しかし、このように具象型を指定することなく、コンストラクター注入を指定するにはどうすればよいでしょうか?
c# - StructureMap で追加のコンストラクター引数を渡す
構造マップに IContainer を実装する方法に関する以前の投稿に続いて、しばらくの間、私の最後の問題だと思っていた問題にぶつかりました。
追加の (Structuremap が注入されていない) オブジェクトをコンストラクターに渡すにはどうすればよいですか?
これをテストするために私が持っているサンプル コンソール アプリケーションから以下を取り上げます。
私のコンストラクターには randomParam があり、構造マップにはギャップを埋める方法がわからないため、これにより次のエラーがスローされます。
タイプ 'StructureMap.StructureMapBuildPlanException' の未処理の例外が StructureMap.dll で発生しました
追加情報:具象型 CommonServices.UserService のビルド プランを作成できません
コンストラクタ:
私のレジストリでは、次のようにユーザー サービスを定義します。
私が持っている質問は、これを最も簡単な方法で行うにはどうすればよいですか?
このリンクを見つけましたが、呼び出し元のクラスに UserService の依存関係を認識させる必要があるため、提案の使用方法がわかりません。ご覧のとおり、それらの一部はデータ レイヤー アイテムであり、UI レイヤーにそれらについて伝えたくありません。
http://structuremap.github.io/resolving/passing-arguments-at-runtime/
moq - StructureMap 3 で MoqAutoMocker 自動モッカーを使用するにはどうすればよいですか?
StructureMap を使用した単体テストに慣れようとしており、StructureMap に付属していると思われる Moq 用の組み込みの自動モッカーを使用しようとしています。指示に従ってNuGet パッケージをインストールしました
そしてそれはインストールされ、SMは正常に機能しています。リポジトリには明らかに MoqAutoMocker コードが含まれていますが、StructureMap.AutoMocker.Moq名前空間はどこにもありません。
これを行うのが非常に簡単に見えるいくつかの例をチェックしましたが、それらは数年前のものであり、以前のバージョンの SM に焦点を当てているように見えますが、まだ見ていないものがあることを願っています:
http://joelabrahamsson.com/setting-expectations-with-structuremaps-moqautomocker/ http://evolutionarydeveloper.blogspot.com/2012/10/automock-with-structuremap-and-moq.html
ここで私が見逃している明らかなものはありますか?
c# - asp.net-mvc の Structuremap 自動登録からどのように使用できますか?
3層の単純なmvcアプリケーションがあります
- Ui => Common And Services への参照があります
- 一般
- Services => Common への参照があります
共通レイヤーでサービス コントラクトを定義し、それをサービス レイヤーで実装します
私の Global.asax では、最初の Structuremap コンテナー用にこのコードを記述します。
今、私のコントローラーで、このように IPersonService からインスタンスを取得したいとき
このエラーが発生します
デフォルトのインスタンスは登録されておらず、タイプ '*.IPersonService' に対して自動的に決定できません
この問題を解決するためのアイデアはありますか?
asp.net-web-api - コンストラクタ依存性注入 WebApi 属性
WebApi 属性の非パラメーター注入オプションを探しています。
私の質問は、Structuremap を使用してこれが実際に可能かどうかです。
私はぐるぐる回っていますが、プロパティ注入 (私は使用したくない) またはこれまで複製できなかったコンストラクター注入の想定される実装のいずれかを考え続けています。
私の選択したコンテナはStructuremapですが、変換できるので、これの例で十分です。
これを管理したことのある人はいますか?
c# - RhinoAutoMocker を使用するための StructureMap.AutoMocking.dll の参照に関する問題
RhinoMocks 用の StructureMap の自動モック コンテナーを試してみたくてたまらなかった: http://docs.structuremap.net/AutoMocker.htm
このドキュメントには次のように記載されています。
そのまま使用できる StructureMap には、RhinoMocks 用の RhinoAutoMocker と Moq 用の MoqAutoMocker が含まれています。自動モッキングのサポートは、StructureMap.AutoMocking.dll にあります。
ただし、RhinoMocks 3.6.1 と structuremap バージョン 3.1.4.143、および structuremap.automocking 3.1.0.133 をテスト プロジェクトに取り込んだにもかかわらず、StructureMap.AutoMocking.dll への参照はありません (したがって、/bin にはありません)。 ) したがって、RhinoAutoMocker を解決できません。
新しいプロジェクトを最初から作成しましたが、すべて正常に動作しているため、既存のプロジェクトのセットアップに何か奇妙な点があると思います。structuremap、structuremap.automocking、および RhinoMocks を削除して再度追加すると、同じ結果が得られます (structuremap.automocking DLL はありません)。
他の誰かがこの問題を抱えていますか? これは単なる Nuget/VisualStudio の問題ですか?
c# - StructureMap IoC / Entity Framework の使用時にデータベース接続を閉じていますか?
私は StructureMap の IoC (および一般的な IoC) に少し慣れていません。例から、私は自分のものを次のように設定しています:
デフォルトレジストリ:
次に、アクションがデータベースを必要とする各コントローラーで、次のようにします。
それを使用する必要があるときは、次のようにします。
ADO.NET を使用していたときは、常にすべてを using ステートメントで囲んでいました。using ステートメントを利用する Entity Framework の例を見てきました。しかし、EF を StuctureMap と組み合わせて使用する場合、何らかの方法で using ステートメントをラップする必要がありますか? もしそうなら、どうすればいいですか?
c# - StructureMap で有効期間の短いフォーム オブジェクトを使用する
私が書いているこのアプリケーションがありますが、そのサイズのために組織の面で少し惨事になっています。これは、StructureMap v3.1.4.143 を使用して IoC を実装するための理想的な候補になると考えました。
Program.cs でオブジェクト グラフを設定し、コンストラクターでいくつかの依存関係を取得するアプリケーション コンテキストを作成しています。それらの 1 つは、スプラッシュ スクリーン フォームです。アプリ コンテキストが実行されると、このフォームが表示され、初期化時の状況に応じてフォームの現在のステータスが更新されます。
このオブジェクトは非常に一時的なものであり、一度破棄すると、StructureMap はそれをどう処理するのでしょうか? なんらかの方法でオブジェクトをキャッシュしますか? 実際にオブジェクトが何らかの方法でキャッシュされている場合、オブジェクトをルート化して破棄したままにするのは無駄に思えます。ネストされたコンテナを使用する必要がありますか? コンテナーを管理できる場合は、コンテナーを渡さないようにしています。アプリケーション コンテキストは、Application.Run (モーダル) を呼び出すときに、このオブジェクトを破棄する必要があります。では、この状況を処理する良い方法はありますか? オブジェクトが使用されなくなったときに GC から到達できないオブジェクトをぶらぶらしたままにしたくないのです。
これにより、別の設計上の問題が発生する可能性があります。ボタンをクリックして、新しいフォームが作成され、操作され、破棄された場合、StructureMap を介してこれをどのように処理しますか? 実行時にフォームを作成する必要があり、オンデマンドでのみ作成する必要があります。また、ユーザーが使い終わった後もそれを保持したくありません (無駄だと思います)。フォームを破棄し、StructureMap によって注入されたファクトリ メソッドを使用して新しいインスタンスを作成すると、以前のインスタンスが破棄された状態で返されますか?
そして、これを邪魔にならないようにするために、フォームを閉じるときに「非表示」にすることは、ここではオプションではありません。
これは、私が確かに慣れていない、本当に別の考え方です。そのため、ご指導をいただければ幸いです。