5
我使用Unity和Unity.MVC5。該註冊類型和依賴解析器的類是如下:Unity不解決依賴關係
public static class UnityConfig
{
public static void RegisterComponents()
{
var container = new UnityContainer();
container
.RegisterType<ILogger, Nlogger>()
.RegisterType<IDataAccessLayer, SqlDataAccessLayer>()
.RegisterType<IEventBusiness, EventBusiness>();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
}
這裏是我的Global.asax代碼:
void Application_Start(object sender, EventArgs e)
{
UnityConfig.RegisterComponents();
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
在我的控制器之一,我有一個屬性是這樣的:
[Dependency]
public IEventBusiness EventBusiness { get; set; }
我期望這個屬性可以由Unity自動設置,但它總是爲空。有人能幫我弄清楚我做錯了什麼嗎?
您也可以嘗試在註冊時提供'InjectionProperty'配置。或者,爲什麼不嘗試構造函數注入呢? – StuartLC
您是否將控制器註冊到容器中? – TylerOhlsen
@TylerOhlsen,不,我不註冊控制器。我一定要嗎?當我檢查DependencyResolver.Current時,在控制器內部,它向我提供了具有所有註冊類型的UnityContainer的正確實例。 – Aref