是否有可能在Application_Start
上創建可用於所有控制器的類實例?在Application_Start上創建一個類實例
我希望能夠創造出例如:
var globalHelper = new LoadsStuff();
,然後在我的操作方法:
globalHelper.GetInfoFor("key");
我的助手類加載一個相當大的XML文件,內存和I會喜歡只做一次。
是否有可能在Application_Start
上創建可用於所有控制器的類實例?在Application_Start上創建一個類實例
我希望能夠創造出例如:
var globalHelper = new LoadsStuff();
,然後在我的操作方法:
globalHelper.GetInfoFor("key");
我的助手類加載一個相當大的XML文件,內存和I會喜歡只做一次。
使用應用程序變量:
Application["GlobalHelper"] = new LoadsStuff();
((LoadsStuff) Application["GlobalHelper"]).GetInfoFor("key");
參考:
應用程序在控制器中不可用,你確定這是正確的嗎? – 2011-06-01 13:48:33
@BjarkiHeiðar:試試'HttpContext.Current.Application'。 – 2011-06-01 13:57:58
它是HttpContext.Application,謝謝。 – 2011-06-01 14:01:39
如果您將XML文件Application level object
置於Application_Start
事件中怎麼辦?
void Application_Start(object sender, EventArgs e)
{
Application[""] = //
}
是的,我認爲你可以。 我沒有試過,但類似:
ManagedWebSessionContext.Bind(HttpContext.Current, globalHelper)
是否使用MVC?如果你是,你應該在你的標籤中註明。 – DOK 2011-06-01 13:41:28
我做了,但一個管理員更改標籤爲asp.net,我只是修復:) – 2011-06-01 13:42:13
這聽起來像你想要使用依賴注入可疑。看看ninject mvc http://weblogs.asp.net/shijuvarghese/archive/2010/04/30/dependency-injection-in-nerddinner-app-using-ninject.aspx – 2011-06-01 13:44:09