2

我在 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" %>
4

1 回答 1

0

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

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

于 2013-01-23T15:21:24.793 回答