问题描述
我在我的 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;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)