作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 mvc3 项目中有一个“帐户”区域。
它有一个 AreaRegistration 类来限制对注册用户的可见性,如下所示:
public class AccountAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Account";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Account_default",
"{account}/{controller}/{action}/{id}",
new {controller = "Dashboard", action = "Index", id = UrlParameter.Optional },
new {account = new MustBeRegisteredAccount(DEPENDENCIES)},
new string[] {"Continuum.Web.Areas.Account.Controllers"}
);
}
}
那么我该如何设置 ninject 才能解决依赖关系/创建 MustBeRegisteredAccount 对象?
最佳答案
我会首先尝试使用构造函数注入(inject)(即,看看 MVC 是否在内部使用注册的 DependencyResolver
来创建 AreaRegistration
类的实例(还没有找到任何一种方法来确定它是否应该起作用,但是有一种根据经验找出答案的快速方法 :D)。
否则,使用 DependencyResolver.GetService<MustBeRegisteredAccount>()
是Service Locator (antipattern) MVC 领域的解决方法。 (Ninject.MVC3 扩展故意不公开全局内核实例,因为那样只会鼓励无偿使用)。
参见 http://bradwilson.typepad.com/blog/2010/10/service-location-pt5-idependencyresolver.html
关于asp.net-mvc - 我如何在 AreaRegistration 中使用 ninject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414109/
我是一名优秀的程序员,十分优秀!