C# Visual Studio扩展命名空间以产生错误

C# Visual Studio扩展命名空间以产生错误,c#,visual-studio-2008,namespaces,C#,Visual Studio 2008,Namespaces,我在VisualStudio2008中遇到了一个问题,重新编译库项目使VisualStudio无法解析名称空间。问题是VisualStudio不必要地扩展了名称空间。例如,我有一个像 ... = (MyCompany.Dashboard.Data.BaseObjects.ZonesStruct) value; 它在过去编译的很好,但在重新编译时突然开始失败。Visual Studio无法解决此问题,并给出错误消息“命名空间“MyCompany.MyCompany.Dashboard”…”中不存

我在VisualStudio2008中遇到了一个问题,重新编译库项目使VisualStudio无法解析名称空间。问题是VisualStudio不必要地扩展了名称空间。例如,我有一个像

... = (MyCompany.Dashboard.Data.BaseObjects.ZonesStruct) value;
它在过去编译的很好,但在重新编译时突然开始失败。Visual Studio无法解决此问题,并给出错误消息“命名空间“MyCompany.MyCompany.Dashboard”…”中不存在类型或命名空间名称“Data”。启动此操作的更改是向库中添加一个新类。失败的类是现有的和未触及的类

我以前也遇到过类似的情况,但是UI设计器生成的代码被明确限定为“MyCompany.MyCompany…”。我希望这两种情况的根本原因是一样的

不确定它是否有用,但库项目的默认名称空间是“MyCompany”。我尝试过修改,但没有注意到任何变化

谢谢。

换成这个

global::MyCompany.Dashboard.Data.BaseObjects.ZonesStruct

global::将名称空间一直转义到根名称空间。这不是Visual Studio的问题,而是名称空间冲突问题。

将其更改为此

global::MyCompany.Dashboard.Data.BaseObjects.ZonesStruct


global::将名称空间一直转义到根名称空间。这不是Visual Studio的问题,这是一个冲突的命名空间问题。

这并没有解决问题,只是症状。但是,您可以尝试使用

... = (global::MyCompany.Dashboard.Data.BaseObjects.ZoneStruct) value;

有关
全局
关键字的更多信息,请参见MSDN:

这并没有解决问题,只是解决了症状。但是,您可以尝试使用

... = (global::MyCompany.Dashboard.Data.BaseObjects.ZoneStruct) value;

有关
global
关键字的更多信息,请参见MSDN:

解决方法是有效的,但是有没有解释为什么第一个限定符会重复?这是无中生有的,现在我似乎在随机添加global::qualifiers,而visualstudio却没有很好地理解其中的原因。我看不出冲突是如何产生的,因为这以前确实有效。只有当名为MyCompany.MyCompany的命名空间或类型MyCompany.MyCompany存在时,才会出现您得到的错误(但不是100%确定),这会引入歧义,从而导致错误。当您指定global::时,您会告诉编译器,在这之后的第一个限定符必须是非嵌套的命名空间,并且编译器会使用该信息解决歧义。我建议检查名称空间或(不太可能)类型的错误名称,以避免反复指定global::是的,我的类是用“MyCompany.MyCompany”名称空间生成的。修正了这个问题。谢谢。解决方法是有效的,但是有没有解释为什么第一个限定符会重复?这是无中生有的,现在我似乎在随机添加global::qualifiers,而visualstudio却没有很好地理解其中的原因。我看不出冲突是如何产生的,因为这以前确实有效。只有当名为MyCompany.MyCompany的命名空间或类型MyCompany.MyCompany存在时,才会出现您得到的错误(但不是100%确定),这会引入歧义,从而导致错误。当您指定global::时,您会告诉编译器,在这之后的第一个限定符必须是非嵌套的命名空间,并且编译器会使用该信息解决歧义。我建议检查名称空间或(不太可能)类型的错误名称,以避免反复指定global::是的,我的类是用“MyCompany.MyCompany”名称空间生成的。修正了这个问题。谢谢