在面试过程中,我被问到了这一点。如何配置依赖注入以仅允许一个类的一个实例?
我们在我们的项目统一容器中使用依赖注入。它得到使用Bootstrapper.Initialise();
我的DI
public class Bootstrapper
{
public static IUnityContainer Initialise()
{
var container = BuildUnityContainer();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
return container;
}
private static IUnityContainer BuildUnityContainer()
{
IUnityContainer container = new UnityContainer();
RegisterService(container);
return container;
}
public static void RegisterService(IUnityContainer container)
{
container.RegisterType<ILibraryService, LibraryService>();
}
}
有两个问题在Globals.asax
初始化。
- DI通过项目初始化多少次?
- 如何配置依赖注入以仅允许一个类的实例?
这是一个非常基本的问题,我很糟糕地把它们弄糊涂了。你能为他们提出一些答案吗? 项目环境为VS2015,C#,MVC 5,Unity,Repository模式,EF。
谢谢,@ehsan的答案阅读更多关于生活时间管理。如果该对象只是使用containercontrolledlifetimemanager创建一次,那么如果其他一些动作尝试访问它,请问这会创建任何类型的线程锁定 – ankur
它应用单例对实例,所以我应该想,但我不确定,可以阅读该链接了解更多详情,希望你能在这里得到你的回答:) –