有人可以爲我發光一點點嗎?ASP.NET MVC3 - 使用DependencyResolver和Windsor Castle:爲什麼?
我有我的網站全部運行使用溫莎城堡。我有一個控制器工廠和控制器和服務的安裝程序。一切都很好。
現在我剛剛創建了一個帶有straigh轉發實現調用WindsorDependencyResolver
一個IDependencyResolver
實現類:
public class WindsorDependencyResolver : System.Web.Mvc.IDependencyResolver
{
private readonly IKernel _kernel;
public WindsorDependencyResolver (IKernel kernel)
{
_kernel = kernel;
}
public object GetService(Type serviceType)
{
return _kernel.Resolve(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return _kernel.ResolveAll(serviceType) as IEnumerable<object>;
}
}
我有它設置像這樣(Global.asax中):
DependencyResolver.SetResolver(new WindsorDependencyResolver(kernel));
現在呢?這是什麼時候用的?我應該停止使用kernel.Resolve(someType)
?
所以這意味着** I **不會使用DependencyResolver來處理除MVC3內部服務之外的事情嗎? – Ropstah 2011-05-29 16:36:20
它的目的是讓MVC使用你選擇的容器。我想你可以自己使用它,但它是一個額外的抽象層,你可能不需要擔心你的代碼。 – ckramer 2011-05-31 17:34:46