C\ 程式調試錯誤集 [toc] 1.依賴註入錯誤An unhandled exception has occurred while executing the request. 1.1 出錯現象 System.InvalidOperationException: Unable to resolve ...
目錄
C#程式調試錯誤集
1.依賴註入錯誤An unhandled exception has occurred while executing the request.
1.1 出錯現象
System.InvalidOperationException: Unable to resolve service for type 'IBMS.Infrastruct.UoW.UnitOfWork' while attempting to activate 'IBMS.WEBAPI.Controllers.ValueController'.
出錯圖片如下:
1.1.1原因是net core在調用ValueController的時候,發現UnitOfWork沒有進行依賴註入。
1.2 出錯現象
System.InvalidOperationException: Unable to resolve service for type 'IBMS.Infrastruct.Context.IPBoxContext' while attempting to activate 'IBMS.Infrastruct.UoW.UnitOfWork'.
出錯圖片如下:
1.2.1 原因是net core在調用UnitOfWork的時候,發現IPBoxContext沒有進行依賴註入。
1.3 解決方法
在startup.cs中的ConfigureServices方法中進行依賴註入
services.AddDbContext<IIPBoxContext, IPBoxContext>(options =>
options.UseMySql(Configuration.GetConnectionString("MySqlConnection")));
services.AddScoped<IIPBoxRepository, IPBoxRepository>();
services.AddScoped(typeof(UnitOfWork));//註入工作單元
services.AddScoped(typeof(IPBoxContext));
註意:IPBoxContext進行AddDbContext註入數據上下文之後,仍需要註入services.AddScoped(typeof(IPBoxContext))。