私は、autofacコンテナをより良く使うために、既存のコードベースを改造しています。私が抱えている状況は、古典的なパターンでコンテナから直接コンポーネントを解決するために使用される多くのものがあるということです。私はLifetimeScope
を使って適切な作業単位スキームを導入しています。コンポーネントが最も外側のLifetimeScopeで解決されているか確認してください
私が直面している問題は、を実装しているため、一部のコンポーネントを子供LifetimeScope
から解決する必要があり、処分する必要があるということです。彼らが決して起こらない根の範囲で解決されたら。
ルートスコープで一部のコンポーネントが解決されないようにする方法はありますか。私はこれらのケースを1つずつ進んで、必要に応じてスコープを導入しているので、ランタイムのクラッシュは問題ありません。私がこれを行うために考えることができる唯一の方法は、一度ルートライフタイムスコープで解決され、.InstancePerLifetimeScope()
で解決される少しのダミーコンポーネントを作成し、それを静的にどこかに格納することです。その後、後のコンポーネントが解決されると、それらのダミーコンポーネントの1つが取得され、ルートスコープ内に存在するものと同じインスタンスであるかどうかが確認されます。それは少しclunkyだし、良い方法がありますか?