错误“命名空间不直接包含字段或方法等成员”

Posted

技术标签:

【中文标题】错误“命名空间不直接包含字段或方法等成员”【英文标题】:Error "A namespace does not directly contain members such as fields or methods" 【发布时间】:2010-01-19 01:01:30 【问题描述】:

我正在尝试构建我的 C# 项目,但收到错误消息“命名空间不直接包含字段或方法等成员”。它正在标记 app.config 文件的第一个字符(小于号)。

我检查了我的所有文件中是否存在直接位于命名空间内的变量或函数的位置 - 什么也没找到。 app.config 看起来不错。

Google 让我失望了,我要抓狂了。什么可能导致此错误?

【问题讨论】:

您的 app.config 是否与实际的源文件混淆了? 【参考方案1】:

数字!一旦我终于崩溃并提出我找到答案的问题......

app.config 文件属性部分(不知何故)列出了应设置为“无”的“编译”的构建操作。

它到底是如何改变的?我知道我没有改变它。呜呜呜……

哦,好吧,至少它现在正在建设中。希望别人能从我的脱发中受益。

【讨论】:

是的,你做到了。现在,你昨天在哪里?! 因为其他一些愚蠢的问题而扯掉我的头发。这些课程大部分都是从第一手经验中学到的:/ 我的头发又长回来了,谢谢伙计! @BoltBait(之前的螺栓?) 如果任何不应该编译的东西切换到 Build Action = Compile,而不仅仅是 app.config,就会发生这种情况。在我们的例子中,它是一个 LESS 文件,具有讽刺意味的是,它在 Web Essentials 中是“编译”的,但在 Visual Studio Build Action 中“编译”时会爆炸。 如果您将文件创建为.cs,然后将其重命名为.ts,则打字稿也会发生这种情况【参考方案2】:

我设法重现了错误。

检查 app.config 文件的属性。 Build Action 应该是 None,而不是 Compile

【讨论】:

【参考方案3】:

当您尝试将字段或成员直接添加到命名空间时会发生此错误。鉴于它指向 app.config,VS 可能处于错误状态。尝试关闭并重新打开 Visual Studio,看看错误是否消失。

尝试重建并将生成输出窗口中的结果发布到您的问题中失败。

【讨论】:

【参考方案4】:

我这样解决了:右键单击.axml文件->构建操作->androidResource (xamarin 工作室)

【讨论】:

【参考方案5】:

我有同样的错误。检查 app.config 是否设置为 none,那里没有问题。经过 30 分钟的检查和重新检查后,我重新启动了 VS,然后就完成了。它通常可以解决 90% 的不合逻辑错误。叹息。

【讨论】:

【参考方案6】:

我的网站后面的代码也有类似的问题。 这个问题原来是一个额外的右括号,导致我的课程在 page_load() 之后立即结束。总是检查像这样的愚蠢的语法错误。

【讨论】:

【参考方案7】:

我在使用 XML 文件时遇到了同样的问题。这是由于 .net 编译器试图编译这个 xml,它只用于 DATA 目的,因此不需要编译。

修复:转到此文件的属性并将构建操作从编译更改为内容。

谢谢

【讨论】:

【参考方案8】:

在我的例子中,我错误地在控制器类之外放置了一个新函数。 这是我在 ASP.NET MVC 中出现此错误的代码。

public class HomeController : Controller

    public class HomeController : Controller
    
        // GET: Home
        public ActionResult Index()
        
            return View();
               
    

    [HttpPost]
    public string Insert(string name, string age, string standard, string percent, string address, string status)
    
        //some code
        return "value";
    

应该是这样的:

public class HomeController : Controller

    public class HomeController : Controller
    
        // GET: Home
        public ActionResult Index()
        
            return View();
        

        [HttpPost]
        public string Insert(string name, string age, string standard, string percent, string address, string status)
        
            //some code
            return "value";
               
            

【讨论】:

以上是关于错误“命名空间不直接包含字段或方法等成员”的主要内容,如果未能解决你的问题,请参考以下文章

tp5 加载 extend 类库的方法 (有命名空间和没有命名空间的调用)

命名空间错误中不存在类型资源

错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“AspNetCore”(您是不是缺少程序集引用?)

text tinyrefl解析器错误,找不到全局命名空间中的命名空间

错误 CS0234:命名空间“UnityEditor”中不存在类型或命名空间名称“iOS”。您是不是缺少程序集参考?

命名空间错误中不存在类型资源