如何解决未注册的 IServiceProvider
应用程序启动时发生错误
ImportExportController 类型的构造函数包含参数 名称为 'serviceProvider' 的 IServiceProvider 类型不是 挂号的。请确保 IServiceProvider 已注册,或更改 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());
解决方法
您需要像注册 IServiceProvider
一样注册 IXmlServices
。
container.Register<IServiceProvider,ServiceProvider>();
鉴于此,ServiceProvider
是一个实现接口 IServiceProvider
的类。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。