内容简介:http://stackoverflow.com/questions/6461601/net-mvc-dependency-injection-on-models
问题:有没有办法使用Ninject将依赖项注入我的MVC模型?
首先,我是MVC和DI(和stackoverflow,btw)的新手,所以我想确保我正在走这个问题的正确路径.我一直在搜索几天的答案,但我找不到一个干净的解释…我正在使用C#,.NET4,MVC3,Ninject和VS2010.
这是场景:我有一个新的用户表单,用户可以设置其登录,角色和设置其他配置文件数据.提交后,我需要将登录信息保存到MembershipProvider,RoleProvider等角色…它有点毛茸茸,因为我根据我的项目要求使用双提供程序(Active Directory /本地数据库)因此,如果用户已经存在,如果允许自定义任何角色等等,则确定哪个提供者要保存的逻辑有一点.
我觉得这个逻辑应该在我的模型上的.Save()方法中.然而,我需要将我的提供程序的实例注入到我的模型中,而Ninject似乎不会注入模型(至少不使用NuGet软件包附带的默认设置).所以我的初步问题.
我可以想到一些替代品
>也许模型是这个逻辑开始的不好的地方,我应该将逻辑抽象成一个服务?但是为了这个保存功能而提供服务似乎对我来说太过分了.
>我可以在控制器中吃饱胀,但是我被告知“胖”控制器是一个不好的做法.
>我想我可以将我的提供者注入我的控制器,然后将这些依赖关系传递给我的模型,但是这似乎有点不合.
所以…有没有办法Ninject的模型,或者我需要重新因素,因为我是一个新手吗?
我会选择一个.这不是过度的 – 添加一个类和一个接口只是几行代码,它保持你的实现整洁,也许以后你会想添加更多的方法…更新一个用户?
添加一个接口和类来处理你的控制器使用的–ninject将为你获取这个实例.我以IMembershipAndRoleService为例.
public interface IMembershipAndRoleService { void ProcessNewUser(User newUser); } public class YourController : Controller { private readonly IMembershipAndRoleService _membershipAndRoleService; public YourController(IMembershipAndRoleService membershipAndRoleService) { _membershipAndRoleService = membershipAndRoleService; } [HttpPost] public ActionResult NewUserFormAction(NewUserForm newUserForm) { //process posted form, possibly map / convert it to User then call to save _membershipAndRoleService.ProcessNewUser(user); //redirect or return view } }
最后,实现IMembershipAndRoleService的类,该类将使用您的成员资格和角色提供者或其他接口,使您的逻辑简化.
http://stackoverflow.com/questions/6461601/net-mvc-dependency-injection-on-models
以上所述就是小编给大家介绍的《c# – .NET MVC依赖注入模型?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Angular 4 依赖注入教程之二 组件中注入服务
- 服务端注入之Flask框架中服务端模板注入问题
- 服务器端电子表格注入 - 从公式注入到远程代码执行
- SQL注入测试技巧TIP:再从Mysql注入绕过过滤说起
- 手机抓包+注入黑科技HttpCanary——最强大的Android抓包注入工具
- 三, 跨语言微服务框架 - Istio官方示例(自动注入.请求路由.流量控制.故障注入) 原 荐
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux命令行大全
绍茨 (William E.Shotts) / 郭光伟、郝记生 / 人民邮电出版社 / 2013-3-1 / 69.00元
《Linux命令行大全》主要介绍Linux命令行的使用,循序渐进,深入浅出,引导读者全面掌握命令行的使用方法。 《Linux命令行大全》分为四部分。第一部分开始了对命令行基本语言的学习之旅,包括命令结构、文件系统的导引、命令行的编辑以及关于命令的帮助系统和使用手册。第二部分主要讲述配置文件的编辑,用于计算机操作的命令行控制。第三部分讲述了从命令行开始执行的常规任务。类UNIX操作系统,比如L......一起来看看 《Linux命令行大全》 这本书的介绍吧!