【发布时间】:2016-10-19 18:15:14
【问题描述】:
有没有办法在一行中将我的所有存储库对象映射到其接口。我不想在这样的声明中重复我自己:
services.AddScoped<Repository.Interfaces.IModeloRepository, Repository.ModeloRepository>();
services.AddScoped<Repository.Interfaces.IMunicipioRepository, Repository.MunicipioRepository>();
services.AddScoped<Repository.Interfaces.IPeriodoRepository, Repository.PeriodoRepository>();
services.AddScoped<Repository.Interfaces.IPlanRepository, Repository.PlanRepository>();
以下是这些存储库之一的声明:
public interface IChatRepository : IRepository<Models.Chat>
我已经尝试过这样的事情:
services.AddScoped(typeof(Repository.Common.IRepository<>), typeof(Repository.Common.BaseRepository<>));
但得到以下错误:
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0] 发生未处理的异常:尝试激活“SqlExpress.Helpers.LessonTagHelper”时无法解析类型“SqlExpress.Repository.Interfaces.IChatRepository”的服务。 System.InvalidOperationException:尝试激活“SqlExpress.Repository.Interfaces.IChatRepository”时无法解析服务 SqlExpress.Helpers.LessonTagHelper'。 在 Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp,类型类型,类型 requiredBy,布尔 isDefaultParameterRequired) 在 lambda_method(Closure , IServiceProvider , Object[] )
【问题讨论】:
-
你可以使用反射,但这似乎完全合理......
标签: asp.net-core asp.net-core-mvc