如何告訴註冊這個通用存儲庫?每個請求應通過ApplicationDbContext
作爲TC
。AutoFac寄存器通用類型明確
我已經試過這樣的事情:
builder.RegisterGeneric(typeof(Repository<object, ApplicationDbContext>)).As(typeof(IRepository<>));
目前,我必須註冊每一個seperately其作品,但繁瑣:
builder.RegisterType<Repository<AudioModel, ApplicationDbContext>>().As<IRepository<AudioModel>>();
庫:
public class Repository<T, TC> : IRepository<T>
where T : class
where TC : DbContext
{
private bool _disposed;
protected TC Context { get; }
public Repository()
{
}
public Repository(TC context)
{
Context = context;
}
}
服務:
public class UploadService : IUploadService
{
private readonly IRepository<AudioModel> _repository;
public UploadService(IRepository<AudioModel> repository)
{
_repository = repository;
}
}
這不起作用,不是我想要的 –