VB.NET:获取程序集的命名空间

mbu*_*urm 1 vb.net namespaces embedded-resource .net-assembly

我有一个嵌入式资源(包含在执行程序集中),可以使用以下命令获取它:

Assembly.GetExecutingAssembly().GetManifestResourceStream("<MyNamespace>.<File>")
Run Code Online (Sandbox Code Playgroud)

如果程序集的命名空间发生变化,我必须找到字符串中包含的所有位置。为了避免这种情况,我想动态获取名称空间。是否有可能获取程序集的名称空间或是否可以使用固定值?

感谢您的任何回复。

Aid*_*din 5

您可以在该命名空间中定义一个虚拟类型,并从该类型中提取命名空间:

public class TestType
{
}

var obj = new TestType();
var ns = obj.GetType().Namespace;
Run Code Online (Sandbox Code Playgroud)

编辑:当然,如果命名空间是现有程序集的一部分并且您可以访问它的源代码,那么这是一个很好的解决方案