JobContext リゾルバーを作成する Ninject のセットアップがあります。InRequestScope()
これは問題なく動作しますが、ウェブサイトに非常に特殊な呼び出しがあり、いくつかのデータベース (年ごとのデータベース内のすべてのデータ) をループする必要があります。JobContext があったことを忘れていたので、何が起こっているのかよくわかりませんでしInRequestScope
たが、コードの最後のブロックが思ったように動作していませんでした。
セットアップはこちら
//Ninject module
Bind<Data.IJobContext>().To<Data.JobContext>().InRequestScope();
//Controller's Initialize
protected override void Initialize(System.Web.Routing.RequestContext requestContext) {
base.Initialize(requestContext);
//set a connection string for the jobContext
this.jobContext = DependencyResolver.Current.GetService<IJobContext>();
jobContext.SetYear(currentYear);
}
JobContext はリクエスト スコープ内にあるため、毎年同じオブジェクトを再利用し続けます。InTransientScope
これは、.ではなく必要な唯一の例ですInRequestScope
。
//Special function
foreach (int year in ActiveYears) {
jobContext = DependencyResolver.Current.GetService<IJobContext>();
jobContext.SetYear(year);
DoSomething();
}
どうすればこれを達成できますか?