C# 使用DryIoc解析从基类派生的服务 上下文
在我的解决方案中,有多个项目定义EntityFramework核心C# 使用DryIoc解析从基类派生的服务 上下文,c#,.net,.net-core,dryioc,C#,.net,.net Core,Dryioc,在我的解决方案中,有多个项目定义EntityFramework核心DbContext。在我的Entrypoint项目中,我希望注入DbContext的所有实例,以便能够为每个实例应用挂起的迁移 通过AddDbContext(此IServiceCollection)注册上下文,并使用Populate(此IContainer,IServiceCollection) 例子 类基{}; 类leavone:Base{}; 第二类:基{}; 虚无乐趣() { var container=新容器(); //用
DbContext
。在我的Entrypoint项目中,我希望注入DbContext
的所有实例,以便能够为每个实例应用挂起的迁移
通过AddDbContext(此IServiceCollection)
注册上下文,并使用Populate(此IContainer,IServiceCollection)
例子
类基{};
类leavone:Base{};
第二类:基{};
虚无乐趣()
{
var container=新容器();
//用单例证明这一点
//这是“AddDbContext”调用的简化版本
容器.寄存器(重用.单例);
容器.寄存器(重用.单例);
container.ResolveMany();//空
}
问题
如何正确注册Base
来解析这两个单例实例
以下是我尝试过的:
container.RegisterMapping();
container.RegisterMapping();
container.ResolveMany();//只解析一个实例
container.Register(重用.Singleton);
容器.寄存器(重用.单例);
container.resolvemanny();
//解析两个叶类的实例,但-如预期的那样-
//它们与在中注册的实例不同
//开头
container.RegisterDelegate(ctx=>ctx.Resolve());
container.RegisterDelegate(ctx=>ctx.Resolve());
container.resolvemanny();
//实际上,它适用于本例,但不适用于DbContext,因为
//它试图根据resolve调用'Base'的无参数构造函数
//这是不存在的
是否有一种简单的方法为其父类别名类型?RegisterMapping应该可以工作,但在当前版本中它不会工作。我不确定为什么您尝试使用RegisterDelegate时没有工作-我添加了几个使用它的案例,并使基本抽象对我有效