C# 为什么我在VS2010中会出现奇怪的索引错误?

C# 为什么我在VS2010中会出现奇怪的索引错误?,c#,asp.net,visual-studio-2010,C#,Asp.net,Visual Studio 2010,我在VisualStudio2010中创建了一个C#Web应用程序。然后,我从另一个VS解决方案复制了一些ASPX文件(以及隐藏的代码)。我必须仔细检查并整理一些参考资料和资料。最后我把所有的东西都清理干净了,除了一件奇怪的东西。在VS中,我看到以下代码行上的红色曲线: if (Request.QueryString["b"] != null) 这些行位于Request.QueryString[“b”]部分下面。当我将鼠标悬停在其上时,会看到以下错误消息: 无法将带[]的索引应用于“Syste

我在VisualStudio2010中创建了一个C#Web应用程序。然后,我从另一个VS解决方案复制了一些ASPX文件(以及隐藏的代码)。我必须仔细检查并整理一些参考资料和资料。最后我把所有的东西都清理干净了,除了一件奇怪的东西。在VS中,我看到以下代码行上的红色曲线:

if (Request.QueryString["b"] != null)
这些行位于Request.QueryString[“b”]部分下面。当我将鼠标悬停在其上时,会看到以下错误消息:

无法将带[]的索引应用于“System.Collections.Specialized.NameValueCollection”类型的表达式

这在页面上代码隐藏的页面加载事件中。真正奇怪的是,如果我构建这个项目,它构建得很好,没有任何问题,红色的曲线也消失了。但是,如果我关闭并重新打开文件,我会看到同样的红色曲线,VS再次抱怨

有什么想法吗?我很困惑。我试着重建、清洗溶液、关闭VS和重新打开等等

编辑:这是文件的使用部分

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel;
using System.Collections.Specialized;
此外,以下是ASPX文件的头文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="beamswitch.aspx.cs" Inherits="AIMSWeb.data.beamswitch" %>

所以我想我找到了发生这种情况的原因。我正在构建的ASP.NET应用程序将成为我已经构建的WCF服务的客户端。创建客户端过程的一部分是使用Microsoft实用程序生成app.config文件和proxy.cs文件。然后,这些文件将在我的ASP.NET应用程序中使用,以提供我可以使用的代理代码,以便我可以从我的ASP.NET文件调用该服务。当我从解决方案中删除这些文件时,问题就消失了


具体地说,我猜问题与我的服务中的一个方法试图序列化并将Request.Form对象作为参数发送有关。我想知道proxy.cs文件中的代码是否导致冲突或其他问题。我将尝试重建我的服务,可能使用字典或其他东西,然后看看这是否解决了问题。很奇怪。感谢您的帮助。

您是否安装了诸如ReSharper之类的插件?没有。奇怪的是,这段完全相同的代码在其他解决方案中运行时没有任何问题。此外,它还显示了对请求对象(Request.Form、Request.ServerVariables)的所有引用下的红色曲线。非常奇怪。如果你在QueryString上使用F12,你会到达哪里?您是否有using System.Collections.Specialized?请尝试
如果(!String.IsNullOrEmpty(Request.QueryString[“b”])
Corey,.cs文件顶部的using部分看起来像什么?您是否也厌倦了将项目升级为.net 4.0项目,然后再次将其降级为3.5重新编译它?是的,就是这样。我重新构建了服务,以使用Dictionary对象,而不是尝试将Request.Form作为参数传递。然后,我使用svcutil.exe重新创建proxy.cs文件。然后我将proxy.cs文件添加到我的项目中。现在一切都恢复正常了。唷!