在 C# 中找不到命名空间

问题描述 投票:0回答:1

这是基本的,但就个人而言,我很难过。

我正在接手一个以前组织得不好的C#项目。命名空间非常分散在整个代码中。具体来说,这是一个 Unity 项目,但这实际上只是一个 C# 问题。

在嵌套目录深处的文件中有一个类型(或类)不能在项目其他地方的另一个文件中引用。

如果班级是

MyClass
,它看起来像:

File 1
------

public class MyClass
{
    // Stuff inside.
}

File 2
------
using ManyThings;

namespace SomeNamespace.NestedNamespace { // These came before me.

public class SomethingElse
{
    private MyClass _myClass; // <-- the type "MyClass" cannot be found.
}

}

所以我(天真地)认为如果我在文件 1 周围添加一个命名空间,它会有所帮助:

File 1
------

namespace FindMe
{

public class MyClass
{
    // Stuff inside.
}

}

File 2
------
using ManyThings;
using FindMe; // <-- The namespace FindMe cannot be found.
              // If I name it global::FindMe, it changes nothing.

namespace SomeNamespace.NestedNamespace {

public class SomethingElse
{
    private MyClass _myClass; // <-- the type "MyClass" STILL cannot be found.
}

}

我也尝试过像

global::FindMe
这样的东西,以防万一。但是也没有找到。骑手告诉我:
Cannot resolve symbol 'FindMe'
。团结告诉我:
The type or namespace name 'FindMe' could not be found in the global namespace (are you missing an assembly reference?)
.

我一定错过了一些明显的东西,但是什么?

此外,在 Rider 中,当我尝试在课堂上使用它时,“重构”菜单的内容几乎都是灰色的

MyClass
。我不知道这是否重要。我尝试在使缓存无效后重新启动。

同样,这是一个巨大的项目,有许多未使用的文件。我正在尝试清理它。 这个班级需要保留。这就是为什么我不共享实际代码的原因。它看起来...... icky.

但我错过了什么?

c# namespaces refactoring rider
1个回答
0
投票

只要您在同一个项目中,这应该可行。

如果您不在同一个项目中,而是在同一个解决方案中,您可以将一个项目的依赖项添加到另一个项目,如下所示:

右键单击项目资源管理器依赖项,添加项目依赖项,选择您的项目

这样你就可以在不同的项目中访问命名空间。

希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.