【发布时间】:2020-04-15 00:14:03
【问题描述】:
在 .net 核心 2.1 上, 我已使用
将程序集加载到应用程序services.AddMvcCore().AddApplicationPart([Assembly])
但是程序集包含它的数据库上下文,问题是 我无法以加载控制器的类似方式从程序集中加载 DBContext。 通常我们使用
添加数据库上下文services.AddDbContext<[DBCOntextType]>([options]);
我无法使用反射将类型传递给此函数(AddDBContext),如下所示:
System.Reflection.MethodInfo method = services.GetType().GetMethod("AddDbContext",System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
方法变量始终为空。
此外,如果程序集包含 startup.cs 文件,我将无法在主应用程序启动的同时运行此启动。
如果有解决办法请告诉我 谢谢
【问题讨论】:
-
@thehennyy 我已经用不起作用的反射代码更新了问题
-
AddDbContext似乎是一种扩展方法,因此它不存在于services的类型中,而是存在于其他地方。该方法很可能是在EntityFrameworkServiceCollectionExtensions中定义的。 -
@thehennyy 谢谢,是的,需要修复的是反射解决方案
标签: c# asp.net-core reflection entity-framework-core