我的 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