サービスロケーターパターンを使用するDDDデータレイヤーを備えたフレームワークがあります。ServiceLocator
ただし、現在、すべての参照を格納するグローバル静的クラスを使用しています。これを、クラスがインターフェイスを実装し、グローバル静的クラスIServiceProvider
を削除する正しい実装にリファクタリングしたいと思います。ServiceLocator
IServiceProvider
現在、エンティティクラスを除いて、ほとんどすべての場所で、インターフェイスを使用して既存のクラスを拡張することは問題ではありません。問題は、エンティティクラスを実装する必要があるのは非常に奇妙だと思うことIServiceProvider
ですが、IoCコンテナを介してリポジトリを解決できるようにするには、サービスプロバイダーにアクセスする方法が必要です。
IServiceProvider
エンティティに実装せずにサービスロケーターパターンを実装するための最良の方法は何でしょうか?