asp.net-mvc – 在asp.net mvc控制器中使用构造函数注入的IoC会浪费资源吗?
|
我不确定它是否仅仅是我,但我感觉ASP.NET MVC控制器中使用的构造函数注入导致不必要的资源消耗. 在创建控制器时,仍然需要创建未用于特定Web请求的组件.当我渴望牛奶时,就像买摊位牛奶和果汁一样,然后我扔掉了果汁. 比较控制器的构造函数注入和服务定位器的这些示例,以澄清我的担忧. 构造函数注入,booth deps已创建,但只使用了一个. public class MyController : Controller
{
private readonly IDep1 _dep1;
private readonly IDep2 _dep2;
public MyController(IDep1 dep1,IDep2 dep2)
{
_dep1 = dep1;
_dep2 = dep2;
}
public ActionResult Index()
{
_dep1.MakeStuff();
return View();
}
public ActionResult PageTwo()
{
_dep2.MakeStuff();
return View();
}
}
服务定位器,每个dep仅在使用时创建. public class MyController : Controller
{
public ActionResult Index()
{
var dep1 = ServiceLocator.Resolve<IDep1>();
dep1.MakeStuff();
return View();
}
public ActionResult PageTwo()
{
var dep2 = ServiceLocator.Resolve<IDep2>();
dep2.MakeStuff();
return View();
}
}
请注意,IoC容器(由于多种原因有利)仍可用于服务定位器模式.我不希望这是围绕IoC和容器框架的讨论,也不希望构造函数注入的其他好处(清除可靠性依赖性等).这是构造函数注入模式以及它如何浪费我担心的ASP.NET MVC控制器情况中的资源. 我想这里的主要问题是: 解决方法如果对象创建是你的瓶颈,那么你处于一个非常好的状态(其他一切都像魅力那样< 1 ms操作计数)或者非常糟糕(你的构造者正在做一些繁重的工作 - 他们不是应该). Mark Seemann已经在这里讨论了这个主题:http://blog.ploeh.dk/2011/03/04/Composeobjectgraphswithconfidence/
并提供了一个可能的解决方案,如果它仍然对你很重要(延期分支). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何设置html.EditorFor helper的大小?
- asp.net-mvc – 当模型绑定包含bool时,表单集合必须包含哪个
- VS2005(c#)项目调试问题解决方案集锦 转
- asp.net – 考虑Scalablity和友好URL的GUID替代方案
- asp.net – iTextSharp单位
- asp.net – 如何使用Excel服务器端?
- asp.net-web-api – 当启用CORS时,ASP.NET Web API中的异常
- .net – ASP MVC HTML Helpers – 好还是坏?
- 确定ASP.Net是否正确注册
- asp.net – 如何将其他页面包含到aspx文件中
- SimpleModal打破ASP.Net回传
- asp.net-mvc – 在同一个视图文件夹中的RenderPa
- asp.net-mvc – 如何检测不引人注目的验证是否成
- asp.net-mvc – 什么是好的openid选择器控件?
- asp.net-mvc – ASP.NET MVC:如何绑定List类型的
- asp.net-mvc-3 – 在MVC3中的WebGrid列中应用特定
- asp.net-mvc – UpdateModel和TryUpdateModel
- ASP.NET MVC Web API2 AngularJS授权和身份验证
- asp.net-mvc – 客户端验证未显示消息
- asp.net-mvc – ASP.NET MVC中的通用基本控制器错
