HttpUtility.UrlEncode()
メソッドを使用してURLをエンコードしようとしていますが、なぜ
タイプまたは名前空間の名前「HttpUtility」が名前空間「System.Web」に存在しません(アセンブリ参照がありませんか?)
エラー? Visual C#2008、ExpressEditionを使用しています。
私が使用しているコードは単純です:
using System;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;
namespace Lincr
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void cmdShorten_Click(object sender, EventArgs e)
{
WebRequest wrURL;
Stream objStream;
wrURL = WebRequest.Create("http://lin.cr?l=" + System.Web.HttpUtility.UrlEncode(txtURL.Text) + "&mode=api&full=1");
objStream = wrURL.GetResponse().GetResponseStream();
StreamReader objSReader = new StreamReader(objStream);
textBox1.Text = objSReader.ReadToEnd().ToString();
}
}
}
System.Web
への参照を含める必要があります。ソリューションエクスプローラーでプロジェクトを右クリックし、参照の追加...を選択します。 [〜#〜] msdn [〜#〜] を見ると、System.Web.dll
アセンブリに含まれていることがわかります。私が覚えている限り、これはによって参照されていません。新しいプロジェクトのデフォルト。
誰かがこれに遭遇した場合に備えて、VS 2010を実行していて、利用可能なリファレンスでSystem.Webを見つけることができません...
プロジェクトを右クリックし、[プロパティ]を選択します。ターゲットフレームワークが「.NetFramework 4クライアント」に設定されている場合は、「。NetFramework4」に変更します。
ただし、これによりプロジェクトが閉じられ、再度開かれ、再構築されることに注意してください(Webサービス参照がある場合は、これらを更新する必要があります)
.NET 4.0以降を使用している場合は、クライアントプロファイルで機能する WebUtility.UrlEncode を使用できます(System.Webアセンブリ参照は必要ありません)。