Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
Asp.net 相同命名空间中的相同类名_Asp.net_Vb.net_Class_Namespaces - Fatal编程技术网

Asp.net 相同命名空间中的相同类名

Asp.net 相同命名空间中的相同类名,asp.net,vb.net,class,namespaces,Asp.net,Vb.net,Class,Namespaces,我正在从事一个web项目,有人要求我将一些文件从一个项目移动到另一个项目,但这两个项目都在同一个解决方案中。因此,我将File1从项目A迁移到项目B。然而,我在File1中有一个名为“Foo”的命名空间,其中有一个名为“Bar”的类。然而,我在项目B中也有一个“Foo”名称空间,在另一个“Foo”名称空间中,我有另一个“Bar”类。知道重命名命名空间或类不是一个选项,如何解决这个问题 谢谢, 拉霍斯·阿尔帕德 你不能这样做。您需要更改源或目标的名称空间或类名。您有两个选择: 在一个类或名称空间上

我正在从事一个web项目,有人要求我将一些文件从一个项目移动到另一个项目,但这两个项目都在同一个解决方案中。因此,我将File1从项目A迁移到项目B。然而,我在File1中有一个名为“Foo”的命名空间,其中有一个名为“Bar”的类。然而,我在项目B中也有一个“Foo”名称空间,在另一个“Foo”名称空间中,我有另一个“Bar”类。知道重命名命名空间或类不是一个选项,如何解决这个问题

谢谢,


拉霍斯·阿尔帕德

你不能这样做。您需要更改源或目标的名称空间或类名。

您有两个选择:

  • 在一个类或名称空间上重命名
  • 合并两个条形图类(可以使它们都是局部的,或者通过将代码从一个移动到另一个来合并它们)

  • 通过给B项目提供一个默认名称空间,我成功地解决了我的问题,因此,在B项目中生成的给定名称空间最终位于项目的默认名称空间内,而来自DLL的名称空间仍然位于项目的默认名称空间之外。

    显然,除非您希望通过使Bar类都成为分部类来合并它们,否则您不能进行迁移。如果您不能,那么迁移也不算多更改类或命名空间。同一程序集中的两个类不能具有相同的类名和命名空间。如果类位于不同的程序集中,有一种方法可以做到这一点,但在这里不适用。不要将类命名为与其命名空间相同的名称@Jodrell,我有一个无法更改的DLL链接到B项目,生成的类在B项目中定义。因此,不能对其中任何一个进行重命名。我已经找到了问题的解决方案,但我还没有把它作为一个答案来分享,因为我需要做很多测试。当我完成测试时,如果没有人回答这个问题,我将自己回答。@LajosArpad,您的评论描述了与原始问题不同的情况。不,在我的情况下,重命名类和名称空间不是一个选项,正如我在问题中所描述的。这两个Bar类在概念上非常不同,它们不属于一起,只有当且仅当这两个类没有很大差异时,您的第二个选项才可行。@LajosArpad如果更改名称空间不是一个选项,为什么是您的答案?我没有更改名称空间,我更改了其他内容,这是项目的默认名称空间。我已经做到了这一点,正如我在回答中提到的。我的所有测试都是成功的。因此,您更改了名称空间,您声明,您不能这样做。我更改了项目的默认名称空间,因此名称空间的位置不同,但我没有更改名称空间,它是相同的,但它位于名称空间图的其他位置。如果这是一个VB.Net项目,它没有“默认值”命名空间。它有一个“根”名称空间,在编译时,它会成为类名称空间的一部分,因此实际上,您确实更改了名称空间。是的,很抱歉,它是一个根名称空间。但是我没有改变我的名称空间,当定义根时,它变成了根中的名称空间。但是,我没有更改名称空间,我添加了一个根,因此名称空间的位置已更改。