我将 MVC3 与 Ninject 一起使用,我的控制器中的依赖关系已毫无问题地解决。我几乎没有像本地化、格式提供程序这样的服务,我希望将它们注入到视图模型或 Razor 视图中。现在我手动将它们注入到我的视图模型中,
- 我怎样才能自动化呢?
- 我可以向 Razor 视图注入一些服务吗?
- 如何在 MVC 中使用 Ninject 设置服务定位器?
对于其他人: 似乎 Service Locator 是个坏主意,因为 Ninjects Bootstrapper.Kernel 已过时,而 Service Locator 是一种反模式。看看这篇文章http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx
_
public class HomeController : Controller
{
//This gets injected correctly
[Inject]
public ILocalizationService LocalizationService { get; set; }
//This gets injected correctly
[Inject]
public MyModel Model { get; set; }
public ActionResult Index()
{
var modelResult = Model.GetStuff();
//Here I am manully injecting my services to my View Model,
//I would like Ninject to inject services into my view model.
var viewModelResult = IndexViewModel.Covert(LocalizationService, modelResult);
return View(viewModelResult);
}
public ActionResult About()
{
return View();
}
}