繁体   English   中英

如何找出缺少标识符的名称空间?

[英]How to I find out what namespace a missing identifier belongs to?

当我在visual studio中编译我的c#项目时,我收到错误...

Error   1   The name 'FilterConfig' does not exist in the current context ...

我想我需要添加'使用'语句或添加包或其他东西。 通常,尝试找出哪些包/命名空间缺失的东西的最佳方法是什么? 例如,有没有办法搜索所有常见的包以找到一个成员?

我在msdn上搜索但似乎无法找到它.....

http://social.msdn.microsoft.com/Search/en-US?query=filterconfig&emptyWatermark=true&searchButtonTooltip=Search%20MSDN&ac=4#refinementChanges=33,26,59&pageNumber=1&showMore=false

更新:此特定示例适用于MVC4,但是我也对控制台应用程序感兴趣,因此对通用解决方案(或多个解决方案)感兴趣。

在使用我在网上找到的不完整的教程时,我经常遇到这个问题。 因此,引用可能根本不存在。 通常它们适用于微软。

一般故障排除步骤

右键单击标识符。 在上下文菜单中,您应该看到Resolve ...▹ 在子菜单中,您应该看到两个列表,其中包含所有项目加载的引用中包含具有该名称的符号的所有名称空间。
在此输入图像描述

从第一个列表中选择一项将为当前文件添加一个using指令 从第二个列表中选择一个项目将修改对标识符的使用,使其具有全局资格。 只需选择您要使用的选项。

如果在任何加载的引用中找不到标识符(要么缺少引用,要么是错误),那么您将看不到此列表。 在这种情况下,您应确保所有引用均正确加载(通常无法加载其旁边的感叹号),并检查标识符的拼写。

如果所有引用都已正确加载,并且您确定标识符拼写正确,则可能是符号已重命名,或者完全从项目中删除。 使用“ 重命名...”工具(也可以通过右键单击标识符来找到)可以帮助将来避免这种情况。 有问题的代码片段也可能是从定义了该符号的项目中取出的,并且您需要包含来自该项目的更多代码以使代码正常运行。 最后,可能只是你错过了一个必要的参考。 在这种情况下,您应该询问原始开发人员,或者它是否来自在线资源,以调查该代码来自何处以及使用的库,请查看该源以查看是否提供了更多详细信息。

关于这个具体问题

关于常规疑难解答。 但是,对于您的具体问题,这些步骤可能只会让您到目前为止,并且您需要了解更多关于此类确切类来自哪里才能解决它。 微软的MVC4项目模板在App_Start文件夹中包含一个数字文件。 通常,您首先需要执行以下操作(注意:并非每个MVC4项目模板都包含相同的文件)
MVC4项目模板

这些通常会在您的Global.asax文件中引用,如下所示:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
}

如果这是您遇到问题的地方,那么项目可能会以某种方式被破坏。 FilterConfig类已完全重命名或删除(如上所述)。 该项目也有可能作为MVC3模板(我认为不包括FilterConfig类)或MVC4的预发布版本开始,并且在迁移到完整的MVC4模板时,这被遗漏了。 无论如何,我建议你创建一个全新的MVC4项目,看看你的项目和新项目有什么不同。

现在,如果出于任何原因,新项目不能像它应该那样编译和运行,那么模板本身可能会以某种方式损坏。 在这种情况下,我建议您卸载MVC4并从官方来源重新安装它。

除了pswg所说的(通常应该这样做)之外:我猜您正在使用ASP.NET MVC或ASP.NET Web API,并且FilterConfig类位于* App_Start *文件夹中。 如果是这样,您应该从命名空间的末尾删除* App_Start *。 之后,您可以在Global.asax文件中毫无问题地调用它。

如上所述 ,通常您应该使用pswg提供的解决方案,但对于启动任务,这是Microsoft在其模板中执行此操作的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM