我有一个存储库 RepositoryDepartment,它将 DbContext(即 AdventureworksDB)作为构造函数参数。
public class RepositoryDepartment : Repository<Department>, IRepositoryDepartment
{
AdventureWorksDB _ctx;
public RepositoryDepartment(AdventureWorksDB dataContext)
: base(dataContext)
{
_ctx = dataContext;
}
我已使用 Unity DI将其映射public interface IRepositoryDepartment : IRepository<Department>
到。RepositoryDepartment
因此,当我像这样解析 IRepositoryDepartment 接口时:
Container.Resolve<IRepositoryDepartment>()
我得到了一个功能齐全的 RepositoryDepartment 对象。但这里的问题是:AdventureworksDB 构造函数参数如何被实例化,因为我没有在任何地方注册类型???基类只获取对象,没有实例化逻辑!谁能解释这里发生的魔法!?