2013-01-23 25 views
2

我在Visual Studio 2010中創建了一個C#Web應用程序。然後我從另一個VS解決方案中複製了一些ASPX文件(以及後面的代碼)。我不得不通過並清理一些參考和東西。最終我清理了一切,除了一件奇怪的事情。在VS我看到以下的代碼行的紅色波浪線:爲什麼我在VS 2010中出現奇怪的索引錯誤?

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

你有沒有安裝任何插件,像ReSharper? – ulrichb

+0

不是。奇怪的是,這個完全相同的代碼在另一個解決方案中沒有任何問題。此外,它在所有對Request對象(Request.Form,Request.ServerVariables)的引用下顯示紅色波浪線。很奇怪。 –

+0

如果你在QueryString上的F12,你到達哪裏?你有使用System.Collections.Specialized? – tschmit007

回答

0

所以我想我找到了爲什麼這發生。我正在構建的ASP.NET應用程序將成爲我已經構建的WCF服務的客戶端。部分創建客戶端的過程是使用Microsoft實用程序生成app.config文件和proxy.cs文件。這些文件然後在我的ASP.NET應用程序中用於提供我可以使用的代理代碼,以便我可以從ASP.NET文件中調用該服務。當我從解決方案中刪除這些文件時,問題就消失了。

具體而言,我猜測這個問題與我的服務中的某個方法嘗試序列化並將Request.Form對象作爲參數發送的事實有關。我想知道如果我的proxy.cs文件中的代碼是造成衝突或什麼的。我將嘗試重建我的服務,以便可能使用字典或其他內容,然後查看是否可以解決問題。很奇怪。感謝所有的幫助。

+0

是的,就是這樣。我重建我的服務以使用Dictionary對象,而不是嘗試將Request.Form作爲參數傳遞。然後我使用svcutil.exe來重新創建我的proxy.cs文件。然後我將proxy.cs文件添加到我的項目中。現在一切都恢復正常了。呼! –

相關問題