Iocコンテナを使用してプロジェクト内のほとんどのオブジェクトを解決しますが、どこでも使用するのは不適切なようです。実行時に、ユーザーは単一の会社IDのコンテキストにあり、リポジトリや作業単位などのコンストラクターでその会社IDを渡すことが適切であるように思われます。実行時に会社IDのパラメーターオーバーライドを使用できますが、使用することに利点はありますか
var uow = IocContainer.Resolve<IUnitOfWork>(new ParameterOverride("companyId", companyId))
とは対照的に
var uow = new UnitOfWork(companyId)
さて、私はいつかIUnitOfWorkの別の実装を作成したいと思うかもしれないことを理解しており、新しい実装をIoc構成と簡単に入れ替えることができますが、とにかくそうすることはないと確信しています。