問題タブ [light-inject]
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.
ioc-container - LightInject IoC コンテナーがフォールバック メソッドで stackoverflow をスローする
私は LightInject をいじって、ドメイン プロジェクト、インフラストラクチャ プロジェクト、MVC プロジェクト、および DependencyResolution プロジェクトを含む IoC ソリューションをセットアップしようとしています。インフラストラクチャ、MVC、および DependencyResolution はドメインを参照します。MVC は DependencyResolution を参照し、DependencyResolution は LightInject を参照します。
DependencyResolution は、アプリの起動時に必要なすべての依存関係を登録するという考え方です。現時点では、MVC プロジェクト内のコントローラーは認識されていません。代わりに、未知の MVC コントローラー クラスをすべてキャッチするフォールバック ルーチンをセットアップしました。フォールバック ルーチンでは、MVC コントローラーを登録して返します。これを行うことで、MVC コントローラーがまだ登録されていない最初のヒットによってのみ実行されるため、このコードは 1 回だけ実行されることが期待されます。しかし、そうではありません。代わりに、最初に登録されたにもかかわらず、MVC コントローラーが要求されるたびにフォールバック ルーチンがヒットするため、StackOverflowException が発生します。
では、問題は、なぜこれが起こるのかということです。これは予想される動作ですか? もしそうなら、なぜですか? また、それを回避する方法はありますか?
編集:これが以下のソースコードです。
c# - LightInject ICコンテナはカスタムメソッドでタイプを解決しますか?
LightInject IoCでカスタム メソッドに基づいて型を解決することは可能ですか?
たとえば、リゾルバーは次のようなメソッドを呼び出します
container.Register
依存関係を解決するために上記のメソッドを呼び出すように、メソッドをどのように記述しますか?
c# - Lightinject での FluentValidation
fluentvalidationとlightinjectを使用しています
ブログ記事を挿入するコードは次のとおりです。
public OperationResultDto Add(BlogArticleDto blogArticleDto) { OperationResultDto result = new OperationResultDto();
ご覧のとおり、「検証セクション」は巨大で、サービス (ビジネス) レイヤーで dto パラメーターを検証したくありません。ioc (lightinject) で「引数」を検証したい。
それを進めるための私のiocコードは次のとおりです。
これで、メソッドのすべての引数を取得して、fluentvalidator に渡すことができます。ここで typeOf 引数を定義する必要があることはわかっていますが、その後、流暢な検証の関連する検証オブジェクト*を呼び出して引数を検証するにはどうすればよいですか?
c# - オブジェクト インスタンスを持つ DI コンテナーを使用してオブジェクトを解決する
コンストラクターによって注入された依存関係を使用している ICommand インターフェイスとタスクがあります。依存関係は異なるコンストラクターを使用しているため、リクエスト自体で解決する必要があります。コンテナが解決されている特定のコンテキストでいくつかの依存関係を解決する方法をコンテナに伝えたいです。
インターフェイスとクラスを LightInject に登録しました。
今、私は自分のリクエストで次のようなことをしたいと思っています:
依存関係チェーンが複雑なメソッドに対して非常に長くなる可能性があることを考えると、DI コンテナーでこれを保守可能な方法で行う正しい方法は何でしょうか?
EDIT ユース ケースをより明確にしました (IUser を実装するクラスを変更しました)。
c# - Lightinject と xUnit InjectData
LightInjectフレームワークでxUnitをセットアップしようとしていますが、xUnit InlineDataAttribute を機能させることができません。次のテスト コードは機能しません。
これにより、パラメーター somedata に挿入するものが見つからないというエラーが発生します。InlineDataAttribute を削除すると、インジェクションが機能します。xUnit の InlineData 機能がとても気に入っていますが、LightInject と連携させるにはどうすればよいですか?