【发布时间】:2021-07-28 14:42:21
【问题描述】:
如何将类/类型传递给配置 IServiceCollection 并添加临时服务的方法?我有一个通用的方法,但是如何传递接口的实现?
TDBContextAccessor 将始终是一个接口。所以我想传递接口和它的实现。
代码:
public class CustomDB<TDBContext, TDBContextAccessor> : CustomDB<TDBContext>, ICustomDB<TDBContext, TDBContextAccessor> where TDBContext : DbContext where TDBContextAccessor : class
{
private readonly TDBContextAccessor _accessor;
public CustomDB(string connectionString, TDBContextAccessor accessor) : base(connectionString)
{
_accessor = accessor;
}
public IServiceCollection ConfigureDBContext(IServiceCollection services, TDBContextAccessor accessor)
{
return services
.AddEntityFrameworkSqlServer()
.AddDbContext<TDBContext>(opt => opt.UseSqlServer(this.ConnectionString))
.AddTransient<TDBContextAccessor>();
}
}
我试过了
.AddTransient<TDBContextAccessor, typeof(accessor)>()
但这不起作用。如何传递定义的 TDBContextAccessor 的实现?
【问题讨论】:
标签: c# asp.net-core generics datacontext