类在同一名称空间中找不到另一个类

eid*_*lon 4 c# types namespaces type-resolution

我有一个C#WebApp,我们正在为客户端做.我在项目中有两个类,定义(在单独的文件中)这样...

通用实用程序库:

namespace Client.WebApp {
    public static class General {
        public static MyDbClass GetDB() {
            //<creates and returns MyDbClass here>
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一个PageBase类:

namespace Client.WebApp {
    public class PageBase : System.Web.UI.Page {
        protected MyDbClass dbo { get; set; }

        public PageBase() {
            dbo = General.GetDB();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时,我从dbo = General.GetDB();行中得到错误:
The name 'General' does not exist in the current context Client.WebApp.

  • 我仔细检查了两个文件中的命名空间拼写是否正确.
  • 我尝试在页面库文件中添加顶级命名空间Client.WebApp作为using指令.
  • 我已经尝试完全限定名称,如 dbo = Client.WebApp.General.GetDB();

没有任何帮助,它坚持认为我的General班级不存在.有趣的是,当构建遇到此错误并停止时,代码编辑器不会看到此错误,并且该语句不会被误解为错误.

该项目的目标是Framework v.4.5.2,我在VS 2015工作.

Ron*_*yer 9

这是一个奇怪的错误,在我的VS2015中,如果我将文件Build Action设置为"Compile"以外的任何内容,我会在该文件的任何类型上获得错误下划线.

无论如何,这里的解决方案是验证Build Action是否设置为"Compile",我不确定为什么添加新文件会将构建操作设置为"Compile"以外的任何内容.我还测试了尝试以多种方式添加新文件(选择文本文件模板并将其命名为something.cs),它仍然将其设置为"编译".您应该验证您的VS2015实例是否已使用最新更新进行更新.