内容简介: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依赖注入模型?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
虚拟现实:最后的传播
聂有兵 / 中国发展出版社 / 2017-4-1 / 39.00
本书对“虚拟现实”这一诞生自70年代却在今天成为热门话题的概念进行了历史发展式的分析和回顾,认为虚拟现实是当今最重大的社会变革的技术因素之一,对虚拟现实在未来百年可能给人类社会的各个层面带来的影响进行说明,结合多个大众媒介的发展趋势,合理地推演未来虚拟现实在政治、经济、文化等领域的态势,并基于传播学理论框架提出了几个新的观点。对于普通读者,本书可以普及一般的虚拟现实知识;对于传媒行业,本书可以引导......一起来看看 《虚拟现实:最后的传播》 这本书的介绍吧!