簡體   English   中英

訪問在Application_Start ASP.NET MVC 3中創建的變量

[英]Accessing Variables Created In Application_Start ASP.NET MVC 3

我的Application_Start方法中運行以下代碼:

var builder = new ContainerBuilder();

var store = new DocumentStore { Url = "http://localhost:8081" };
store.Initialize();

builder.RegisterInstance(store);

var container = builder.Build();

我正在使用AutoFac來存儲RavenDB DocumentStore的實例。 現在,我知道此操作僅在應用程序啟動時運行一次,但是我將如何訪問容器變量,以便可以從應用程序中的任何位置檢索存儲在其中的DocumentStore。

DI的想法是,您可以在Application_Start配置容器,並將所有必需的依賴項關聯到對象中,這樣您就無需在代碼的其他部分訪問容器了。 因此,回答您的問題:只需讓應用程序中需要訪問DocumentStore的部分將其作為構造函數參數,然后配置AutoFac使其注入即可。

將代碼的其他部分依賴於容器是一種不好的做法,因為它們與容器緊密耦合。

好! 正如達林指出的那樣,這不是一個好習慣,但是如果您願意,您可以

var container = builder.Build();
Application["container"] = container;

並通過訪問

var container =  Application["container"] as Container; // assuming Container is the type

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM