我从Unity文档中获取了以下示例代码,但是无法使用服务实现将基本控制器实例化为必需的构造函数依赖项。
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.TypeName,
WithLifetime.ContainerControlled);
}
这给出了错误异常信息:
异常类型:ResolutionFailedException异常消息: 依赖项的解析失败,type = “[XXX] .Controllers.HomeController”,name =“(none)”。例外 发生时:调用构造函数 Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior(Microsoft.Practices.Unity.InterceptionExtension.CurrentInterceptionRequest interceptionRequest, Microsoft.Practices.Unity.InterceptionExtension.InjectionPolicy [] 策略,Microsoft.Practices.Unity.IUnityContainer容器)。 例外情况是:ArgumentException - 传递的类型必须是接口
这是一个MVC5应用程序,我有最新的Unity和引导程序Nuget包
答案 0 :(得分:0)
为了实现这一点,我们将WithName参数切换为使用Default作为传递值。