异常是:InvalidOperationException-当前类型xxxx是接口,不能构造。您是否缺少类型映射?
我在具有目标框架4.6.1的Asp.net核心2.2以及目标框架设置为.net核心2.1的asp.net核心2.1中进行了尝试
我在asp.net核心中的DI设置如下所示
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSingleton<ITradeBusinessService, TradeBusinessService>();
services.AddSingleton<IUnityContainer, UnityContainer>();
services.AddSingleton<ICommonDataRepository, CommonDataRepository>();
}
此服务TradeBusinessService在构造函数中采用IUnityContainer。
public TradeBusinessService(IUnityContainer objectContainer)
{
container = objectContainer;
commonRepository = container.Resolve<ICommonDataRepository>();
,当我尝试解析ICommonDataRepository时,出现上述错误。
ICommonDataRepository位于目标为4.5.1的项目中
有什么想法我在这里做错了吗?
答案 0 :(得分:0)
UnityContainer
仅仅是Asp.net Core的Dependency Injection
之类的另一个DI框架。为什么同时需要两者?无论如何,问题在于您要收缩新的空的统一容器并将其注入TradeBusinessService
中。它没有注册ICommonDataRepository
类型。我的建议是,摆脱UnityContainer
,而直接在ICommonDataRepository
中注入TradeBusinessService
。