[英]How to fix the Dependency Injection error in Startup.cs class in .NET Core
I use ASP.NET Core 2.2 I am trying to call a basic service class from Startup.我使用 ASP.NET Core 2.2 我试图从 Startup 调用基本服务类。 It is throwing this exception:
它抛出这个异常:
InvalidOperationException: Unable to resolve service for type 'TIR.NetCore.ICommonLogService' while attempting to activate 'AdminCentral.NetCore.Startup'.
InvalidOperationException:尝试激活“AdminCentral.NetCore.Startup”时无法解析“TIR.NetCore.ICommonLogService”类型的服务。
This my code:这是我的代码:
public class Startup
{
private readonly ICommonLogService _CommonLogService;
public Startup(IConfiguration configuration, ICommonLogService CommonLogService)
{
_CommonLogService = CommonLogService;
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public string connectionString;
public IServiceProvider ConfigureServices(IServiceCollection services)
{
var container = new Container();
container.Configure(config =>
{
config.AddRegistry(new StructuremapRegistry());
config.Populate(services);
});
return container.GetInstance<IServiceProvider>();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
LogException(Exception )
}
private void LogException(Exception error, HttpContext context)
{
_CommonLogService.InsertLogDetail();
}
}
If you want to use ICommonLogService
in the Startup.cs
class, you need to get an instance from the container like this:如果你想在
Startup.cs
类中使用ICommonLogService
,你需要像这样从容器中获取一个实例:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
var container = new Container();
container.Configure(config =>
{
config.AddRegistry(new StructuremapRegistry());
config.Populate(services);
});
//Get an instance of ICommonLogService from container
ICommonLogService CommonLogService = container.GetInstance<ICommonLogService>();
//Use CommonLogService here
return container.GetInstance<IServiceProvider>();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.