私のMVCアプリケーションは現在Global.asax
、Application_Start
メソッドを使用して大量のデータをロードし、それをコレクションとして公開しています。例えば:
現在の使用例:
// Global.asax
public static DataRepository Repository { get; set; }
protected void Application_Start()
{
// All the normal stuff...
// Preload this repository.
DataRepository = new DataRepository();
}
// HomeController.cs Example
public ActionResult Index(){
return Json(MyApplication.Repository.GetSomeCollection(),
JsonRequestBehavior.AllowGet);
}
私がやろうとしていること:
ASP.Net 4.0 + IIS 7.5アプリケーションプリロード機能を使用したいのですが、リポジトリをアプリケーションの残りの部分に公開する必要があります。何かのようなもの:
// pseudo code attempt at goal
public class ApplicationPreload : IProcessHostPreloadClient
{
public MyRepositoryClass Repository { get; set; }
public void Preload(string[] parameters)
{
// repository class's constructor talks to DB and does other crap.
Repository = new MyRepositoryClass();
}
}
質問
を介して実装されIEnumerable<T>
たメソッドを使用して、リポジトリクラスまたは単純なコレクションを公開するにはどうすればよいですか?Preload()
IProcessHostPreloadClient