VB.NET 在运行时确定项目的导入命名空间

VB.NET determine project's imported namespaces at runtime

在 VB.NET(或 C#)中,如何在运行时确定项目属性中导入了哪些命名空间?我将使用它进行动态编译,我希望动态代码自动具有与其父项目相同的导入。

我已经 "Finding all Namespaces in an assembly using Reflection (DotNET)" 看过了。它和我发现的其他示例似乎无法解决我的问题,因为我发现它们提供了所有项目参考的列表。是的,我希望所有这些都可以访问,但有些可以通过完全限定的名称访问,而不是全部导入到根命名空间中。我想 select 仅通过现有项目属性的 "Imported Namespaces" 列表,而不是在我的动态执行 class.

中维护一个单独的冗余列表

编译后的程序集无法实现您所描述的内容,因为它具有编译器功能。编译后只有使用类型的信息(你可以通过反射获得),而不是它们在源代码中的引用方式。