問題タブ [compositionroot]

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 に答える
852 参照

c# - 依存性注入を使用した DbContext の有効期間

DbContextWinForms アプリケーションで依存性注入を使用して寿命を管理する適切な方法について混乱しています。現在、次のようなコードがあります

私が抱えている問題は、このパターンにより、プログラムの開始時にすべてのリポジトリが作成されるため、プログラムMyContext全体でインスタンスが残ります。そのため、プログラムの外部でデータベースが更新されるMyContextと、既にロードされているデータへの参照を使用しているため、プログラムは新しいデータを認識しません。

これが Web アプリケーションの場合、リクエストごとに新しい依存関係が作成されますが、これは WinForms であるため、単一のコンポジション ルートを保持し、Unity コンテナーをすべて渡さずに、この問題を回避する方法がわかりません。各コントローラーがインスタンスごとの独自の依存関係を解決できるように、私のプログラム(またはそれへの静的参照を持つ)。

この問題の標準的な解決策は何ですか?また、依存関係を構成する方法/場所、または .xml を使用する方法/場所で間違っていることはありDbContextますか?

MVCはWebアプリケーション向けであり、MVVMやMVPのようなものはおそらくWeb以外に適していることを知っていますが、どちらも一度しか呼び出されない単一のコンポジションルートで同じ問題を抱えています.

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

c# - Ninject と Xamarin iOS: フレームワークによって作成されたインスタンスに依存関係を挿入する方法

ストーリーボードを使用してユーザー インターフェイスを作成する現在の Xamarin (iOS) プロジェクトで Ninject を試しています。

問題は、UIViewControllers が Ninject ではなく、フレームワークによって作成されることです。だから私は手動でプロパティ注入で依存関係を注入しています:

しかし、この方法ではオブジェクト グラフを壊していますね。たとえば、ViewController は実際には a の子であり、ectUITabBarControllerのようなものを使用したいと考えています。InCallScopeどうすれば修正できますか?

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

windows-services - Windows サービスのどこにコンポジション ルートを作成すればよいですか?

私が持っているWindowsサービスアプリのコマンドラインexeアプリケーションには、mainメソッドがあり、そこで単純なインジェクターを使用してすべての依存関係を登録していIoCます。それが今の私のコンポジションルートです。同じWindows サービス アプリケーションには、OnStartオーバーライド可能なメソッドがあります。ここで ETL 操作を行っています。

コンポジションのルートはどこに保管すればよいですか? メソッドmainまたはOnStart

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

c# - 後方参照を使用してツリー オブジェクトに依存関係を挿入するにはどうすればよいですか?

後方 (親参照) を持つオブジェクトのツリーを作成する構成ルートを生成するにはどうすればよいですか。

二分木を構築したい次の単純なノード オブジェクトを想像してください。

これが私が立ち往生している場所です:

循環依存が含まれているため、依存性注入の原則をこの種のオブジェクト グラフと組み合わせようとするのは間違っていますか? 解決策は何ですか?