組み込みのIoCコンテナにアクセスしたいと考えています(IServiceProvider
と思います)。.netコアのIServiceProvider/containerにアクセスする
私はコードでこれをアクセスすることは一般的に悪い習慣であり、フレームワークがコントローラのようなものに必要とされる依存関係を注入できるようにするべきだと私は知っています。
私の特定のアプリケーションは、別の製品Hangfireを使用しています。このフレームワークは、オブジェクト自体をインスタンス化します。これらのオブジェクトに依存関係を注入するには、JobActivatorクラスをオーバーライドし、そこで独自のコンテナを参照する必要があります。
This質問は、テストの目的で新しいコンテナを作成する方法を示していますが、私が既に設定したものにアクセスしたいし、それを複製する必要はありません。 AutofacのようなDIフレームワークでは、すべてのサービスを追加した後でコンテナにアクセスできます。
誰でも手助けできますか?
:
Startup.cs
ファイルで:カスタム
JobActivator
は次のようになります。場合によっては、オブジェクトの作成を遅らせるか、ディスパッチする必要があります。これは、「コンテナ」にコールバックする必要があることを意味します。このコールバックが[Composition Root](http://blog.ploeh.dk/2011/07/28/CompositionRoot/)内に実装されている限り、これは[絶対に良い](http://blog.ploeh.dk /2011/08/25/ServiceLocatorrolesvs.mechanics/)。 – Steven