当我使用Unity注入两个部分类的依赖项时,我遇到了一个问题。这就是我所做的:
public partial class MyDbContext : IMyDbContext
{
// code
}
public partial class MyDbContext : IMyDbContext
{
// code
}
public interface IMyDbContext
{
// code
}
var container = new UnityContainer();
container.RegisterType<IMyDbContext,
MyDbContext>(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);
使用上面的代码,我得到一个关于我的db为null的例外。但是,如果我删除一个部分类,所以我只有一个部分类,一切正常。如果你能在这方面取悦,我会非常感激。
编辑: 当我处于调试模式时,Unit容器GetService方法捕获异常ResolutionFailedException。
答案 0 :(得分:0)
删除其中一个界面。其中一个部分类实现它,而另一个不能。请记住,部分类在一个类中一起编译,因此您不能让两个部分实现相同的接口,因为一旦合并,不知道哪个部分实际实现了它。
答案 1 :(得分:0)
我通过注册实例而不是类型解决了这个问题。 但是,欢迎任何其他解决方案。
var container = new UnityContainer();
MyDbContext context = new MyDbContext()
container.RegisterInstance<IMyDbContext>(context);
config.DependencyResolver = new UnityResolver(container);