繁体   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