我正在为我的 .NET Core 项目使用存储库模式。我有一个基础存储库:
public abstract class RepositoryBase<T> : IRepositoryBase<T> where T : class
{
protected DbContext MyContext { get; set; }
public RepositoryBase(DbContext context)
{
MyContext = context;
}
}
然后我有从基类派生的实体特定存储库。例如:
public class ClientRepository : RepositoryBase<Client>, IClientRepository
{
public ClientRepository(DbContext context)
: base(context)
{
}
然后我有一个存储库包装器,它实例化所有这些实体特定的存储库。
我想让我的所有存储库访问我的记录器,我通过依赖注入配置了它。但是,我的记录器似乎需要一种类型,例如
ILogger<ClientRepository>
我以通用形式将记录器添加到基类中,在实体类中我做了 ILogger 的特定形式。但是,在存储库包装器构造函数中,我现在需要声明并注入所有这些不同类型的 ILogger。在构建存储库包装器的任何地方,我都需要将所有这些都添加为 args。
任何人都可以澄清注入 ILogger 的正确方法,并可以通过抽象类和派生类将其移动到“下游”吗?