Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用DryIoc解析从基类派生的服务 上下文_C#_.net_.net Core_Dryioc - Fatal编程技术网

C# 使用DryIoc解析从基类派生的服务 上下文

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=新容器(); //用

在我的解决方案中,有多个项目定义EntityFramework核心
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时没有工作-我添加了几个使用它的案例,并使基本抽象对我有效