我有一个集成测试项目,使用Microsoft.AspNetCore.TestHost
包在内存中托管。然后我有一个用于这些测试的库。我想从我的库获取测试项目的程序集名称。因此结构看起来像这样。
TestHost --> TestProject --> MyLibrary
我所做的是尝试调用以下方法:
Assembly.GetExecutingAssembly()
返回 MyLibrary 程序集
Assembly.GetCallingAssembly()
返回 MyLibrary 程序集
Assembly.GetEntryAssembly()
返回 TestHost 程序集。有没有办法在不通过将程序集从 TestProject 传递到 MyLibrary 的情况下自动获取这些信息?
编辑: 正如 @svoychik 建议的那样,我也尝试了直接从 TestProject 调用 MyLibrary 中的方法时调用
Assembly.GetCallingAssembly()
,但返回了以下内容:
System.Private.CoreLib, Version=4.0.0.0, Culture=neutral,
MyLibrary
,则可以使用GetReferencedAssemblies
计算父程序集。 - VasekSystem.Private.CoreLib, Version=4.0.0.0
。 - TjDillashaw