問題タブ [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 投票する
1 に答える
194 参照

structuremap3 - ショートバスを StructureMap v2 から v3 にアップグレードする

Shortbus の使用を開始しましたが、StructureMap.MVC5 パッケージと Shortbus の間で DLL のバージョン管理の問題が発生しています。Shortbus は StructureMap 2.6.3 を使用し、MVC5 パッケージは 2.6.3 を使用しています。

依存関係のリダイレクトを試みましたが、MajorVersion の変更により、Shortbus が問題を引き起こしています。

これはオープン ソース プロジェクトであるため、Shortbus を StructureMap のバージョン 3 にアップグレードすることにしました。

この古いコードの移動に行き詰まっています:

..バージョン 3 へ。問題は Register にあり、ObjectFactory は現在廃止されていると見なされています。

この回答に従って、独自の ObjectFactory を作成する必要があると思います: https://stackoverflow.com/a/25551005/119624

そして、私自身のレジストリを含めます。途中でコードを手伝ってくれる人はいますか?

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

c# - StructureMap により Web API ヘルプ ページで Stack Empty 例外が発生する ModelDescriptionLink.cshtml

DI に StructureMap を使用する Web API プロジェクトがあります。しばらくは正常に動作していますが、空のスタックの結果として InvalidOperationExceptions がスローされる Web API ヘルプ ページ (Microsoft.AspNet.WebApi.HelpPage) で問題が発生しています。

ヘルプ ページを使用して新しい Web API プロジェクトを作成しましたが、StructureMap.WebApi2 パッケージを追加するまで正常に動作しますが、前述の例外は ModelDescriptionLink.cshtml 内でスローされます。

@:Collection of @Html.DisplayFor(m => elementDescription.ModelType, "ModelDescriptionLink", new { modelDescription = elementDescription })このモデルのリソース説明へのリンクを表示しようとすると、スローされます。

これは、依然として例外を引き起こすスリム化されたルートです。

このルートのドキュメントにアクセスしようとするhttp://localhost:21966/Help/Api/POST-Testと、例外が発生します。

例外イメージ

同じ問題を抱えている人の例を1 つだけ見つけることができました。その解決策は、StructureMap から Ninject に切り替えるか、null チェックで例外を回避することでした。

スタック トレースの先頭は次のとおりです。

HelpPageApiModel.cshtmlこの場所で例外をキャッチすることにより、後でほぼ同じ行にポップアップします: @Html.DisplayFor(m => m.ResourceDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ResourceDescription }). これはそのスタック トレースの先頭です。

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

c# - structuremap asp.net mvcを使用して、オプションのデコレータまたはデコレータをオプションのパラメータで登録する方法は?

この素晴らしい記事https://cuttingedge.it/blogs/steven/pivot/entry.php?id=9の影響を強く受けて、アプリケーションに CQRS アプローチを実装しました。コマンドとハンドラーのコードは、記事と同じように設定されており、その部分はうまく機能しています。コマンドの検証を処理するデコレータ クラスを実装しようとすると、私の問題が発生します。シンプルなコマンド処理インターフェースは次のようになります。

それから私が持っている検証デコレータのために:

バリデーターを定義するためにインターフェースを使用します。

AndCommandBaseは、コマンドの成功または失敗と、失敗した場合に発生したエラーを格納できる単純な基本クラスです。例外をスローする代わりに、この方法を使用することをお勧めします。すべてのコマンドは、この基本クラスを継承します。

そして、これはすべて、構造マップ レジストリ内の IoC コンテナーに接続されています。

ここで、ICommandHandler ごとにそのデコレーターを登録するので、バリデーターを必要とせず、バリデーターを定義しないコマンドがある場合ICommandValidator<TCommand> _commandValidator、クラスのプライベート フィールドはValidationCommandHandlerDecorator<TCommand>もちろん存在せず、常に次の構造マップ エラーをスローします。

「デフォルトのインスタンスが登録されておらず、タイプ 'ICommandValidator' に対して自動的に決定できません ICommandValidator に指定された構成がありません」

クラス内のコンテナに依存したり、コマンドを処理ValidationCommandHandlerDecoratorするためのインターフェイスを作成したりする必要なく、存在しない場合に何らかのタイプのデフォルトバリデータを使用するように、構造マップで get の構築方法を定義する方法はありますか?IValidateableCommandHandler<TCommand>バリデーター?

ありがとうございました。

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

ninject.web.mvc - Structuremap の次の Ninject ステートメントに相当するものは何ですか?

Structuremap で以下に相当するものは何ですか

-アルン

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

c# - StructureMap 3 の Open Generics を使用したデコレーターのインターセプト

StructureMap 2.6 でオープン ジェネリック型のインターセプトを介してコマンド ハンドラーをロギング デコレーターでラップするデコレーター規則を使用しているプロジェクトがあります。しかし、アップグレードを完了するために、StructureMap 3 に同等の機能を実装する最善の方法を見つけるのに苦労しています。

以下は StructureMap 2.6 のコードです。まず、私の IoC クラスでは、コマンド ハンドラーを解決するためのスキャン ポリシーを設定しています。

次に、IoC のスキャン規則に追加されたデコレータ規則があり、デコレータ インターセプトを接続します。

次に、特定のコマンドをコマンド ハンドラーにマップし、ロギング デコレーター (コマンド ハンドラーをラップしている) で Execute メソッドを呼び出すコマンド バスがあります。これは、デコレーター内のコマンドで Execute メソッドを呼び出します。

デコレーター規則をインターセプター ポリシーに置き換え、インターセプター ポリシーを IoC クラスに追加することで、StructureMap 3 でこれを機能させることができました。

インターセプター ポリシーは次のとおりです。

そして、これを IoC のインターセプター ポリシーに追加するコードは次のとおりです。

ただし、Container.GetInstance (私の CommandBus 内) を呼び出すと、コマンド ログ デコレータではなく、一致するコマンド ハンドラーの実装が返されます。Container.GetAllInstances を呼び出すと、実装 (1 つ目) とデコレータ (2 つ目) の両方が返されます。

したがって、現時点でこれを機能させる唯一の方法は、Container.GetAllInstances から返された 2 番目の項目を明示的に選択するか、結果をフィルター処理してリフレクションを使用してデコレーターを選択することです。次に例を示します。

ただし、これはかなり醜い解決策のようです。明らかに私が見逃しているものがあるに違いありません。まず、デコレータ インターセプト ポリシーを明示的に追加したのに、Container.GetInstance がデコレータではなく実装を返すのはなぜですか? 第二に、これを完全に行うためのより良い方法はありますか?

どんなアイデアや提案も大歓迎です!

0 投票する
0 に答える
426 参照

asp.net-mvc - StructureMap MVC5 パッケージの使用時に System.InvalidOperationException スタックが空です

StructureMap.MVC5 パッケージをインストールした後、次の例外 System.InvalidOperationException スタックが空になりました。部分ビューで循環オブジェクト依存を表示しようとした場合。

あるいは単に

オブジェクトの例:

どうすれば解決できると思いますか?

ありがとう!

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

c# - Structuremap 3+ (3.1.6.186) デフォルトのインスタンスを指定する方法は?

古い構造マップから新しい構造マップに変換中です.. 2. 何かから 3.1.6.186...

IWebAccess のデフォルト インスタンスを WinFormAccess として定義しようとしています...実行すると、次のエラーが発生します。

セットアップ: StructureMap.StructureMapConfigurationException: デフォルトのインスタンスが登録されておらず、タイプ 'JCDCTools.Core.Utilities.Interfaces.IWebAccess' に対して自動的に決定できません

JCDCTools.Core.Utilities.Interfaces.IWebAccess の構成が指定されていません

1.) Container.GetInstance(JCDCTools.Core.Utilities.Interfaces.IWebAccess)

c:\BuildAgent\work\a395dbde6b793293\src\StructureMap\SessionCache.cs の StructureMap.SessionCache.GetDefault(Type pluginType, IPipelineGraph pipelineGraph) で: c:\BuildAgent\work の StructureMap.Container.GetInstance(Type pluginType) で 63 行目\a395dbde6b793293\src\StructureMap\Container.cs: c:\BuildAgent\work\a395dbde6b793293\src\StructureMap\Container.cs の StructureMap.Container.GetInstance() の 339 行目: _Test_DAL.BaseTest.TestFixtureSetup() の 202 行目BaseTest.cs: 22 行目

これが私のコードです

私はググって掘り下げましたが、For.useがデフォルトのインスタンスを作成していない理由がわかりません...単純に見えましたが、これを機能させることができません..

誰かが私が間違っていることを理解するのを手伝ってくれますか? コード例、または Github の公式ドキュメントよりも詳しく説明されているドキュメント ( http://structuremap.github.io. )