我在Visual Studio 2010中创建了一个C#Web应用程序。然后我从另一个VS解决方案中复制了一些ASPX文件(以及后面的代码)。我必须经历并清理一些参考资料和东西。最后,除了一件奇怪的事情,我清理了所有东西。在VS中,我在下面的代码行中看到了红色的波浪线:
if (Request.QueryString["b"] != null)
这些行在Request.QueryString [“b”]部分下面。当我将鼠标悬停在它上面时,我看到以下错误消息:
无法将带有[]的索引应用于“System.Collections.Specialized.NameValueCollection”类型的表达式
这是针对页面背后代码的Page_Load事件。真正奇怪的是,如果我构建项目,它可以毫无问题地构建得很好并且红色的波浪线会消失。但是如果我关闭并重新打开文件 - 我看到相同的红色波浪线,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" %>
答案 0 :(得分:0)
所以我想我发现了为什么会这样。我正在构建的ASP.NET应用程序将成为我已经构建的WCF服务的客户端。创建客户端的部分过程是使用Microsoft实用程序生成app.config文件和proxy.cs文件。然后在我的ASP.NET应用程序中使用这些文件来提供我可以使用的代理代码,以便我可以从我的ASP.NET文件中调用该服务。当我从我的解决方案中删除这些文件时,问题就消失了。
具体来说,我猜这个问题与我的服务中的一个方法试图序列化并将Request.Form对象作为参数发送这一事实有关。我想知道我的proxy.cs文件中的代码是否导致冲突或其他什么。我将尝试重建我的服务,以便可能使用字典或其他东西,然后看看是否能解决问题。很奇怪。感谢您的帮助。