問題タブ [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.

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

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 メソッドが呼び出されることはありません。

これは私の実装です:

この方法は私のスタートアップにあります...

..そしてこれはコントローラーです:

私の完全なスタートアップ クラス

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

c# - Structuremap3 DecorateAllWith

私は、汎用インターフェイスで DecorateAllWith を動作させるのに苦労しています。ここで、インターセプターを使用して解決したいくつかの投稿を読みましたが、古い構造マップ バージョンを使用しているようで、「クリーンな」ソリューションのようには見えません。

構造マップ3で動作させるには、本当に助けが必要です

ロギングとキャッシングの両方で装飾したい汎用リポジトリがあります

IEntityRepository を継承する約 20 のインターフェイスがあります。例 mu UserRepository

そして、IEntityRepository のすべてのインスタンスを装飾したいロギング デコレータの具象型があります。

または、私が達成しようとしていることに適した他の IC コンテナーはありますか?

編集: IEntityRepository から継承するすべてのインターフェイスを装飾する方法はありますか

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

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を問題なく使用したことがあります。

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

c# - C# StructureMap.Mvc5 を使用しているときにベース コントローラーにインジェクションを渡す最良の方法は何ですか?

C# StructureMap.Mvc を使用するときにベース コントローラーでインジェクションを取得する最良の方法は何ですか?

この2つの方法を考えることができ、どちらが優れているかわかりません。

  1. コントローラーの引数からベースコントローラーの引数へ (良いアプローチですが、多くのプロパティを注入するコントローラーが多数ある場合は混乱します)
  2. 子コントローラーを使用せず、ベース コントローラー コンストラクターで ObjectFactory.CreateInstance() を使用してすべてのインジェクションを開始します (コントローラー インジェクションが利用可能な場合、コードは非常に少なく管理しやすいですが、良い方法とは見なされません)。

前もって感謝します。

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

dependency-injection - シングルトンまたは一時的なすべてのタイプとして登録する方法は、StructureMap との 1 つのインターフェイスを実装します

サービスがシングルトンまたは一時的である必要があるかどうかを示す2つのインターフェースがあります。

このインターフェイスを他のインターフェイスとクラスに実装します。

次に、他のサービスにセッションを挿入します。

ISingleton を実装する型のすべてのインスタンス リクエストを Singleton ライフサイクルで作成する必要があるように StructureMap を構成する方法は??

私はそれを試しました:

しかし、何も...動作しません。SessionオブジェクトをTransientとして作成してください。

私も試してみました:

そして何も...

ウィンザー城を使用してそれを行う方法を見てきました:

しかし、StructureMap を使用する方法がわかりません...

他の可能性は、規則 (IRegistrationConvention) を使用することですが、その方法がわかりません。例:

誰か助けてください。

アップデート

私はコンベンションを構築しました:

それは機能しているように見えますが、各クラスをプラグインタイプとして登録します。この場合:

セッション => セッション [シングルトン] BookService => BookService [一時的]

しかし、SessionをISessionとして注入すると... ISessionが登録されていないためインスタンスが見つかりません...しかし、デフォルトの変換を使用できます...そして、動作しますが、インスタンスを一時的なものとして取得します...

WhatDoIHave() を呼び出すと、次のように表示されます。

私はこれを解決できますか?

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

structuremap - StructureMap の規則 - Registy.AddType と Registry.For().Use() の違い

短い質問。との間に違いはregistry.AddType(pluginType, type);ありregistry.For(pluginType).Use(type);ますか?

コード:

WhatDoIHave() を使用すると、同じことがわかります。

AddType の使用:

For().Use() の使用:

唯一の違いは説明にあります...

誰か?

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

asp.net-mvc-5 - PreApplicationStart からの現在の URL

PreApplicationStart メソッドに依存して HttpModule を登録し、IoC コンテナーを初期化する StructureMap.MVC5 を使用しています。この時点でページが実行されているサーバー名を取得して、IoC 初期化で環境固有のプロパティを設定できるようにすることはできますか?