問題タブ [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.
c# - 依存性注入を使用した DbContext の有効期間
DbContext
WinForms アプリケーションで依存性注入を使用して寿命を管理する適切な方法について混乱しています。現在、次のようなコードがあります
私が抱えている問題は、このパターンにより、プログラムの開始時にすべてのリポジトリが作成されるため、プログラムMyContext
全体でインスタンスが残ります。そのため、プログラムの外部でデータベースが更新されるMyContext
と、既にロードされているデータへの参照を使用しているため、プログラムは新しいデータを認識しません。
これが Web アプリケーションの場合、リクエストごとに新しい依存関係が作成されますが、これは WinForms であるため、単一のコンポジション ルートを保持し、Unity コンテナーをすべて渡さずに、この問題を回避する方法がわかりません。各コントローラーがインスタンスごとの独自の依存関係を解決できるように、私のプログラム(またはそれへの静的参照を持つ)。
この問題の標準的な解決策は何ですか?また、依存関係を構成する方法/場所、または .xml を使用する方法/場所で間違っていることはありDbContext
ますか?
MVCはWebアプリケーション向けであり、MVVMやMVPのようなものはおそらくWeb以外に適していることを知っていますが、どちらも一度しか呼び出されない単一のコンポジションルートで同じ問題を抱えています.
c# - Ninject と Xamarin iOS: フレームワークによって作成されたインスタンスに依存関係を挿入する方法
ストーリーボードを使用してユーザー インターフェイスを作成する現在の Xamarin (iOS) プロジェクトで Ninject を試しています。
問題は、UIViewController
s が Ninject ではなく、フレームワークによって作成されることです。だから私は手動でプロパティ注入で依存関係を注入しています:
しかし、この方法ではオブジェクト グラフを壊していますね。たとえば、ViewController は実際には a の子であり、ectUITabBarController
のようなものを使用したいと考えています。InCallScope
どうすれば修正できますか?
windows-services - Windows サービスのどこにコンポジション ルートを作成すればよいですか?
私が持っているWindowsサービスアプリのコマンドラインexeアプリケーションには、main
メソッドがあり、そこで単純なインジェクターを使用してすべての依存関係を登録していIoC
ます。それが今の私のコンポジションルートです。同じWindows サービス アプリケーションには、OnStart
オーバーライド可能なメソッドがあります。ここで ETL 操作を行っています。
コンポジションのルートはどこに保管すればよいですか? メソッドmain
またはOnStart
?
c# - 後方参照を使用してツリー オブジェクトに依存関係を挿入するにはどうすればよいですか?
後方 (親参照) を持つオブジェクトのツリーを作成する構成ルートを生成するにはどうすればよいですか。
二分木を構築したい次の単純なノード オブジェクトを想像してください。
これが私が立ち往生している場所です:
循環依存が含まれているため、依存性注入の原則をこの種のオブジェクト グラフと組み合わせようとするのは間違っていますか? 解決策は何ですか?