[英]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.