私はASP.NET 5でDIのトピックを調べていますが、そのような問題に直面しました。新しいインスタンスを作成する方法がわかりませんリクエストごとのサービスASP.NET 5とビルトインされたDIコンテナのリクエストごとのスコープ
私は、コードを使用:
services.AddScoped<ValueStore>();
そして、私のミドルウェア内部の私は値をつかむ:
var someValueStore = app.ApplicationServices.GetService<ValueStore>();
完全なコードはhere
利用可能であり、私の問題がある:私はこれを期待している間にサービスごとに更新する必要はありませんが、それはAddSingleton()
として登録されているかのように動作します。
何か間違っていますか?
ミドルウェアの 'Invoke'メソッドに' ValueStore'を挿入するとどうなりますか? 'app.ApplicationServices'はリクエストスコープのサービスを含んでおらず、代わりにシングルトンインスタンスを返すかもしれません。 –
ミドルウェアの 'HttpContext'にアクセスする必要があります。その場合、' RequestServices'にアクセスしてリクエストごとのサービスを解決することができます。 –