問題タブ [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.
asp.net-web-api - 構造マップのパラメーターなしのコンストラクター エラー
Web API 2 で構造マップ ver 3.0.5.0 を設定しようとしています。
私はこの実装に従いました: Configure Dependency Injection with ASP.NET Web API 2.1
ただし、ComplexesController に対して get を実行すると、次のエラーが発生します。
タイプ 'ComplexesController' のコントローラーを作成しようとしたときにエラーが発生しました。コントローラーにパラメーターなしのパブリック コンストラクターがあることを確認します。
私の構造マップ構成の何が問題なのか誰にもわかりますか? Create メソッドが呼び出されることはありません。
これは私の実装です:
この方法は私のスタートアップにあります...
..そしてこれはコントローラーです:
私の完全なスタートアップ クラス
c# - Structuremap3 DecorateAllWith
私は、汎用インターフェイスで DecorateAllWith を動作させるのに苦労しています。ここで、インターセプターを使用して解決したいくつかの投稿を読みましたが、古い構造マップ バージョンを使用しているようで、「クリーンな」ソリューションのようには見えません。
構造マップ3で動作させるには、本当に助けが必要です
ロギングとキャッシングの両方で装飾したい汎用リポジトリがあります
IEntityRepository を継承する約 20 のインターフェイスがあります。例 mu UserRepository
そして、IEntityRepository のすべてのインスタンスを装飾したいロギング デコレータの具象型があります。
または、私が達成しようとしていることに適した他の IC コンテナーはありますか?
編集: IEntityRepository から継承するすべてのインターフェイスを装飾する方法はありますか
asp.net-mvc - MVC5 で動作する構造マップを取得できません
Visual Studio 2013 で既定の MVC5 Web アプリケーションを作成し、 NuGet からStructureMap.MVC5パッケージに追加しました。
インターフェイスITester
と実装を作成しました。Tester
コントローラー アクションはITester
パラメーターとして を受け取ります。
しかし、プロジェクトを実行するとエラーが発生しますCannot create an instance of an interface
。
これによると、うまくいくはずです。(デフォルトの規則に依存するのではなく)構造マップに使用Tester
するように明示的に指示した場合も、同じ結果が得られます。ITester
以前、MVC4 Web アプリケーションでStructureMap.MVC4を問題なく使用したことがあります。
c# - C# StructureMap.Mvc5 を使用しているときにベース コントローラーにインジェクションを渡す最良の方法は何ですか?
C# StructureMap.Mvc を使用するときにベース コントローラーでインジェクションを取得する最良の方法は何ですか?
この2つの方法を考えることができ、どちらが優れているかわかりません。
- コントローラーの引数からベースコントローラーの引数へ (良いアプローチですが、多くのプロパティを注入するコントローラーが多数ある場合は混乱します)
- 子コントローラーを使用せず、ベース コントローラー コンストラクターで ObjectFactory.CreateInstance() を使用してすべてのインジェクションを開始します (コントローラー インジェクションが利用可能な場合、コードは非常に少なく管理しやすいですが、良い方法とは見なされません)。
前もって感謝します。
dependency-injection - シングルトンまたは一時的なすべてのタイプとして登録する方法は、StructureMap との 1 つのインターフェイスを実装します
サービスがシングルトンまたは一時的である必要があるかどうかを示す2つのインターフェースがあります。
このインターフェイスを他のインターフェイスとクラスに実装します。
次に、他のサービスにセッションを挿入します。
ISingleton を実装する型のすべてのインスタンス リクエストを Singleton ライフサイクルで作成する必要があるように StructureMap を構成する方法は??
私はそれを試しました:
しかし、何も...動作しません。SessionオブジェクトをTransientとして作成してください。
私も試してみました:
そして何も...
ウィンザー城を使用してそれを行う方法を見てきました:
しかし、StructureMap を使用する方法がわかりません...
他の可能性は、規則 (IRegistrationConvention) を使用することですが、その方法がわかりません。例:
誰か助けてください。
アップデート
私はコンベンションを構築しました:
それは機能しているように見えますが、各クラスをプラグインタイプとして登録します。この場合:
セッション => セッション [シングルトン] BookService => BookService [一時的]
しかし、SessionをISessionとして注入すると... ISessionが登録されていないためインスタンスが見つかりません...しかし、デフォルトの変換を使用できます...そして、動作しますが、インスタンスを一時的なものとして取得します...
WhatDoIHave() を呼び出すと、次のように表示されます。
私はこれを解決できますか?
structuremap - StructureMap の規則 - Registy.AddType と Registry.For().Use() の違い
短い質問。との間に違いはregistry.AddType(pluginType, type);
ありregistry.For(pluginType).Use(type);
ますか?
コード:
と
WhatDoIHave() を使用すると、同じことがわかります。
AddType の使用:
For().Use() の使用:
唯一の違いは説明にあります...
誰か?
asp.net-mvc-5 - PreApplicationStart からの現在の URL
PreApplicationStart メソッドに依存して HttpModule を登録し、IoC コンテナーを初期化する StructureMap.MVC5 を使用しています。この時点でページが実行されているサーバー名を取得して、IoC 初期化で環境固有のプロパティを設定できるようにすることはできますか?