显然,您不能注册嵌套泛型:
Cannot register nested generic interface in .NET Core
private static void AddGenericList(IServiceCollection services)
{
services
.AddTransient<IRequestHandler<GenericList<Attribute>, Attempt<IQueryable<Attribute>>>,
GenericListHandler<Attribute>>();
services
.AddTransient<IRequestHandler<GenericList<Brand>, Attempt<IQueryable<Brand>>>,
GenericListHandler<Brand>>();
services
.AddTransient<IRequestHandler<GenericList<Category>, Attempt<IQueryable<Category>>>,
GenericListHandler<Category>>();
services
.AddTransient<IRequestHandler<GenericList<Conversion>, Attempt<IQueryable<Conversion>>>,
GenericListHandler<Conversion>>();
services
.AddTransient<IRequestHandler<GenericList<Criterion>, Attempt<IQueryable<Criterion>>>,
GenericListHandler<Criterion>>();
services
.AddTransient<IRequestHandler<GenericList<Exclusion>, Attempt<IQueryable<Exclusion>>>,
GenericListHandler<Exclusion>>();
services
.AddTransient<IRequestHandler<GenericList<Feed>, Attempt<IQueryable<Feed>>>,
GenericListHandler<Feed>>();
services
.AddTransient<IRequestHandler<GenericList<FieldMap>, Attempt<IQueryable<FieldMap>>>,
GenericListHandler<FieldMap>>();
services
.AddTransient<IRequestHandler<GenericList<Field>, Attempt<IQueryable<Field>>>,
GenericListHandler<Field>>();
services
.AddTransient<IRequestHandler<GenericList<Filter>, Attempt<IQueryable<Filter>>>,
GenericListHandler<Filter>>();
services
.AddTransient<IRequestHandler<GenericList<Floor>, Attempt<IQueryable<Floor>>>,
GenericListHandler<Floor>>();
services
.AddTransient<IRequestHandler<GenericList<Formula>, Attempt<IQueryable<Formula>>>,
GenericListHandler<Formula>>();
services
.AddTransient<IRequestHandler<GenericList<Plan>, Attempt<IQueryable<Plan>>>,
GenericListHandler<Plan>>();
services
.AddTransient<IRequestHandler<GenericList<Rule>, Attempt<IQueryable<Rule>>>,
GenericListHandler<Rule>>();
services
.AddTransient<IRequestHandler<GenericList<Theatre>, Attempt<IQueryable<Theatre>>>,
GenericListHandler<Theatre>>();
services
.AddTransient<IRequestHandler<GenericList<Transformation>, Attempt<IQueryable<Transformation>>>,
GenericListHandler<Transformation>>();
services
.AddTransient<IRequestHandler<GenericList<Venue>, Attempt<IQueryable<Venue>>>,
GenericListHandler<Venue>>();
}
这不是最理想的解决方案,但确实有效。