0
我目前正在使用IoC容器(城堡)注入依赖项到控制器中。这是可能的,因为您需要创建一个自定义控制器工厂来启用依赖注入。.NET MVC - 在哪里使用依赖注入?
依赖注入的其他例子是什么?在一个MVC应用程序中的哪一点你会使用它,以及“工厂”在哪里发挥作用?
我目前正在使用IoC容器(城堡)注入依赖项到控制器中。这是可能的,因为您需要创建一个自定义控制器工厂来启用依赖注入。.NET MVC - 在哪里使用依赖注入?
依赖注入的其他例子是什么?在一个MVC应用程序中的哪一点你会使用它,以及“工厂”在哪里发挥作用?
我正在使用Ninject。在我的项目中:
IPrincipal
接口实现,它被注入服务层,而不是参考HttpContext.Current.User
。实施例使用Ninject:
public class UserService : GenericService<User>, IUserService
{
public ISettingService SettingService { get; set; }
public ICTEmailSender CTEmailSender { get; set; }
public ICTSettings CTSettings { get; set; }
public ICTPrincipal User { get; set; }
}
Ninject规则:
Bind<ICTPrincipal>().ToMethod(c => (ICTPrincipal)HttpContext.Current.User).OnlyIf(a => HttpContext.Current.User is ICTPrincipal);
Bind<ICTEmailSender>().To<CTEmailSender>();
Bind<ICTSettings>().To<CTSettings>();
不仅服务被注入的控制器,但服务的部分被注入其中。它使服务更可测试。我相信它可以很容易地移植到城堡。
在测试或运行期间? – 2011-02-12 16:10:31
运行期间。 – Ropstah 2011-02-12 16:53:15