未注册的 IServiceProvider
IServiceProvider that is not registered
应用启动时出现错误
The constructor of type ImportExportController contains the parameter
with name 'serviceProvider' and type IServiceProvider that is not
registered. Please ensure IServiceProvider is registered, or change
the constructor of ImportExportController
我的代码
public class ImportExportController : BaseController
{
private readonly IServiceProvider _serviceProvider;
public ImportExportController(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
}
对于依赖项的注入,我使用的是 Simple Injector
错误发生在container.Verify();
private static void Register(Container container)
{
_container = container;
container.Register<IXmlServices, XmlServices>();
container.Verify();
}
我在这里使用_serviceProvider
foreach (var element in productsToImport)
{
using (var scope = _serviceProvider.CreateScope())
{
var app = scope.ServiceProvider.GetService<IImportApp>();
var task = Task.Run(() => app.ImportData(element, UserName, ImportID, PricesCurrencies));
listTask.Add(task);
}
}
Task.WaitAll(listTask.ToArray());
您需要像注册 IXmlServices
一样注册 IServiceProvider
。
container.Register<IServiceProvider, ServiceProvider>();
鉴于此,ServiceProvider
是实现接口 IServiceProvider
的 class。
应用启动时出现错误
The constructor of type ImportExportController contains the parameter with name 'serviceProvider' and type IServiceProvider that is not registered. Please ensure IServiceProvider is registered, or change the constructor of ImportExportController
我的代码
public class ImportExportController : BaseController
{
private readonly IServiceProvider _serviceProvider;
public ImportExportController(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
}
对于依赖项的注入,我使用的是 Simple Injector
错误发生在container.Verify();
private static void Register(Container container)
{
_container = container;
container.Register<IXmlServices, XmlServices>();
container.Verify();
}
我在这里使用_serviceProvider
foreach (var element in productsToImport)
{
using (var scope = _serviceProvider.CreateScope())
{
var app = scope.ServiceProvider.GetService<IImportApp>();
var task = Task.Run(() => app.ImportData(element, UserName, ImportID, PricesCurrencies));
listTask.Add(task);
}
}
Task.WaitAll(listTask.ToArray());
您需要像注册 IXmlServices
一样注册 IServiceProvider
。
container.Register<IServiceProvider, ServiceProvider>();
鉴于此,ServiceProvider
是实现接口 IServiceProvider
的 class。