我目前正在迁移一个项目,它是从 .Net Framework 到 .Net Core 的测试项目。
在 .Net Framework 中,我们曾经能够做这样的事情来为测试设置 EntryAssembly:
AppDomainManager manager = new AppDomainManager();
FieldInfo entryAssemblyfield = manager.GetType().GetField("m_entryAssembly", BindingFlags.Instance | BindingFlags.NonPublic);
entryAssemblyfield.SetValue(manager, assembly);
AppDomain domain = AppDomain.CurrentDomain;
FieldInfo domainManagerField = domain.GetType().GetField("_domainManager", BindingFlags.Instance | BindingFlags.NonPublic);
domainManagerField.SetValue(domain, manager);
Run Code Online (Sandbox Code Playgroud)
取自这里:https : //dejanstojanovic.net/aspnet/2015/january/set-entry-assembly-in-unit-testing-methods/
由于 AppDomainManager 在 .Net Core 中不再可用,我们如何完成类似的事情,以便Assembly.GetEntryAssembly();返回我想要的而不是测试项目程序集。