Dependency injection 构造函数中的Autofac inject type参数导致;无法将lambda expressiont转换为类型参数,因为它不是委托类型";
带参数的singleton服务的Autofac注册让我感到困扰。我的尝试是:Dependency injection 构造函数中的Autofac inject type参数导致;无法将lambda expressiont转换为类型参数,因为它不是委托类型";,dependency-injection,parameters,autofac,autofac-configuration,Dependency Injection,Parameters,Autofac,Autofac Configuration,带参数的singleton服务的Autofac注册让我感到困扰。我的尝试是: builder.RegisterType<CsvReader>().As<ICsvReader>(); builder.RegisterType<MyService>().As<IMyService>() // .WithParameter(ctx => ctx.Resolve<ICsvFileReader>()) // error h
builder.RegisterType<CsvReader>().As<ICsvReader>();
builder.RegisterType<MyService>().As<IMyService>()
// .WithParameter(ctx => ctx.Resolve<ICsvFileReader>()) // error here
.AsSelf().SingleInstance();
builder.RegisterType().As();
builder.RegisterType().As()
//.WithParameter(ctx=>ctx.Resolve())//此处出错
.AsSelf().SingleInstance();
我不确定应该如何在MyService注册中注入ICsvFileReader参数。MyService是一个单例服务。在我把这个参数注入ctor之前,每个人都工作得很好
错误是:
无法将lambda expressiont转换为类型参数,因为它不是
委托类型
帮助?如果
ICsvFileReader
已经在Autofac注册(As
),那么您根本不需要使用参数指定。Autofac应该将其传递给构造函数。