SimpleInjector,服务和多个实例的依赖注入

问题描述

我在我的 DI 库中使用 SimpleInjector。我的 asp.net MVC 站点中有控制器,它们通过此库在其构造函数获取服务。当我查看 Visual Studio 中的诊断工具并查看我的托管内存时,我会看到同一服务的多个实例。

var container = new Container();
            container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

            container.RegisterWebApiControllers(GlobalConfiguration.Configuration);
            container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
            container.RegisterMvcIntegratedFilterProvider();

            RegisterComponents(container);

            container.Verify();
            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));

我的问题是,这是设计使然。我想一个 IPaymentsService 将用于所有控制器,但我的计数为 187?我认为应该是 1。

我正在考虑添加以下行。似乎工作正常,现在我看到使用的内存减少了 700,000 KB,站点加载时间加快了 10 秒以上。这有什么缺点吗?

container.Options.DefaultLifestyle = Lifestyle.Scoped;

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...