Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET:获取程序集的命名空间_Vb.net_Namespaces_Embedded Resource_.net Assembly - Fatal编程技术网

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

VB.NET:获取程序集的命名空间,vb.net,namespaces,embedded-resource,.net-assembly,Vb.net,Namespaces,Embedded Resource,.net Assembly,我有一个嵌入式ressource(包含在执行程序集中),可以通过以下命令获得它: Assembly.GetExecutingAssembly().GetManifestResourceStream("<MyNamespace>.<File>") Assembly.getExecutionGassembly().GetManifestResourceStream(“.”) 如果程序集的名称空间发生更改,我必须找到字符串中包含的所有位置。为了避免这种情况,我希望动态获取名

我有一个嵌入式ressource(包含在执行程序集中),可以通过以下命令获得它:

Assembly.GetExecutingAssembly().GetManifestResourceStream("<MyNamespace>.<File>")
Assembly.getExecutionGassembly().GetManifestResourceStream(“.”)
如果程序集的名称空间发生更改,我必须找到字符串中包含的所有位置。为了避免这种情况,我希望动态获取名称空间。是否有可能获取程序集的名称空间或必须使用固定值


感谢您的回复。

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

public class TestType
{
}

var obj = new TestType();
var ns = obj.GetType().Namespace;

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

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

public class TestType
{
}

var obj = new TestType();
var ns = obj.GetType().Namespace;

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

您可以使用assembly.GetManifestResourceNames()。现在您有两个问题,最好不要编写试图解决一个迄今为止只是想象的问题的代码。在代码中使用单个常量是一个简单的解决方案。常量也是我的想法;-)这似乎是最简单的解决办法。那我就用这个。谢谢。您可以使用Assembly.GetManifestResourceNames()。现在您有两个问题,最好不要编写试图解决一个迄今为止只是想象的问题的代码。在代码中使用单个常量是一个简单的解决方案。常量也是我的想法;-)这似乎是最简单的解决办法。那我就用这个。谢谢,效果很好。在我的例子中,我不需要伪类型,因为我可以使用与执行上述代码相同的类。谢谢。在类代码中的任何方法中使用Me.GetType().Namespace不是更通用、更适用于全局吗?Me.GetType().Namespace返回当前类的命名空间。不同的类可以有不同的名称空间。通常情况下,我们希望得到另一个不同的类/程序集的名称空间,这非常有效。在我的例子中,我不需要伪类型,因为我可以使用与执行上述代码相同的类。谢谢。在类代码中的任何方法中使用Me.GetType().Namespace不是更通用、更适用于全局吗?Me.GetType().Namespace返回当前类的命名空间。不同的类可以有不同的名称空间。通常情况下,我们希望获得另一个不同的类/程序集的名称空间。