私はついに頭をC#のIoCとDIに巻き付け、いくつかのエッジに苦労しています。Unityコンテナーを使用していますが、この質問はもっと広く当てはまると思います。
IoCコンテナを使用して、IDisposableを実装するインスタンスをディスペンスすると、私はびっくりします。Dispose()が必要かどうかをどのように知る必要がありますか?インスタンスはあなたのためだけに作成された可能性があります(したがって、Dispose()する必要があります)。または、ライフタイムが他の場所で管理されているインスタンスである可能性があります(したがって、そうでない方がよいでしょう)。コードには何もわかりません。実際、これは構成に基づいて変更される可能性があります!!! これは私には致命的なようです。
そこにいるIoCの専門家は、このあいまいさを処理するための良い方法を説明できますか?