asp.net-mvc – ASP.NET MVC ActionResult背后的推理是一个抽象类吗?
|
在 ASP.NET MVC中,ActionResult类是操作方法从控制器返回的所有结果的基础,它被定义为使用单一方法的抽象类(Microsoft): public abstract void ExecuteResult(ControllerContext context); 你能想到这个设计的具体原因吗?具体来说,对我来说似乎有点奇怪 >没有IActionResult接口, 毕竟,如果这是一个接口而不是那个抽象类,那么就不需要扩展基类来创建一个新的ActionResult – 只需要正确实现IActionResult即可.在一个世界上,错误的语言,没有多重继承,这个优势对我来说似乎非常重要. 解决方法接口非常适合允许类实现多个合同,例如当您知道类型必须是两个不同的东西时.在某些情况下,这可能会鼓励创建一个责任太多的类型.行动结果只有一个责任,似乎没有任何情况下你需要一个对象同时是一个行动结果和其他东西.即使你这样做,也可以通过作曲来完成.因此,在这种情况下,我们选择ABS以便在RTM进行必要的更改后允许我们更大的灵活性. 但是,如果有一个特定的场景我们阻止接口更好,我们会考虑它.我们总是可以在以后不以破坏的方式做到这一点. 您甚至可以通过编写自己的动作调用程序来完成它,它只需要您实现IActionInvoker(一个接口),并且调用者可以检查您自己的IActionResult而不是ActionResult. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在我正在运行的Visual Studio 2013中的另一
- asp.net-web-api – 如何从Web API响应中删除标头?
- asp.net – 组合两个List(Of String)最有效的方法是什么?
- asp.net mvc长时间操作
- asp.net – GridView RowUpdating无法获取新值
- ASP.net Substitution 页面缓存而部分不缓存的实现方法
- asp.net-mvc – 如何在ASP.NET MVC中测试动作过滤器?
- asp.net-mvc – 如何降级Visual Studio 2012中的Entity Fra
- asp.net – 查找和删除孤立的网页,图像和其他相关文件
- asp.net-mvc-4 – 实体框架代码第一个多对多关系和继承
