如何使用Unity IoC在解析的具体类型上指定构造函数值
本文关键字:类型 构造函数 Unity 何使用 IoC | 更新日期: 2023-09-27 17:54:14
我看过很多关于使用Unity选择重载构造函数的帖子,但我的问题有点不同,我无法找出答案。我有以下类继承了一个接口(部分代码):
public class UnitOfWork : IUnitOfWork
{
private DbContext _context;
public UnitOfWork(DbContext context)
{
_context = context;
}
}
所以现在我尝试使用unity来解析接口的具体类型,如下所示:
container.RegisterType<IUnitOfWork, UnitOfWork>();
然而,我需要在被解析时将实体框架上下文传递给该具体类型。我希望做这样的事情:
container.RegisterType<IUnitOfWork, UnitOfWork(new AdventureWorks2008R2Entities())>();
当然,我知道上面的代码是不正确的,并且已经阅读了关于使用InjectionConstructor
类的内容,但我认为这在这里不适用。
所以我的问题是,当使用Unity IoC解决具体类型时,我如何在UnitOfWork
类上定义构造函数的值?
谢谢!
需要为DbContext: container.RegisterType<DbContext, AdventureWorks2008R2Entities>();
添加注册
我能够使用InjectionConstructor
类,因为我想和以下注册工作良好:
container.RegisterType<IUnitOfWork, UnitOfWork>(new InjectionConstructor(new AdventureWorks2008R2Entities()));
下面的链接帮助我更好地理解了这一点:
注册注入参数和属性值