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