2

Visual Studio 2010 で C# Web アプリケーションを作成しました。次に、別の VS ソリューションからいくつかの ASPX ファイル (およびコード ビハインド) をコピーしました。私はいくつかの参照やものを調べて整理しなければなりませんでした。最終的に、1つの奇妙なことを除いて、すべてをクリーンアップしました。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 ファイルからサービスを呼び出すために使用できるプロキシ コードを提供します。これらのファイルをソリューションから削除すると、問題はなくなりました。

具体的には、私のサービスのメソッドの 1 つが Request.Form オブジェクトをシリアル化してパラメーターとして送信しようとしていたという事実に問題が関係していると推測しています。私のproxy.csファイルのコードが競合などを引き起こしているのではないかと思っています。代わりに辞書などを使用するようにサービスを再構築して、問題が解決するかどうかを確認します。非常に奇妙な。助けてくれてありがとう。

于 2013-01-23T15:21:24.793 に答える