ターゲットフレームワークを.net 4.0に設定してWinFormアプリケーションを開発しました。ターゲットフレームワークを.net 4.5に設定したプロジェクトに追加したいと思います。 4.5プロジェクトに4.0 WinFormアプリケーションを追加した後、HttpUtilityオブジェクトでエラーが発生し続けます。
data += "&batch_data=" + HttpUtility.UrlEncode(batch, System.Text.Encoding.GetEncoding("ISO-8859-1"));
「名前 'HttpUtility'は現在のコンテキストに存在しません」
HttpUtilityがあるSystem.Web名前空間を含めました。
Visual Studioエラー:
CS0234 The type or namespace name 'HttpUtility' does not exist in the namespace 'System.Web' (are you missing an Assembly reference?)
問題はどこかにあります。
[〜#〜] msdn [〜#〜] でわかるように、HttpUtility
クラスは.NET Framework 4.5のSystem.Web
にあります。
クライアントプロファイルをターゲットにしている可能性があります。プロジェクトプロパティで完全なフレームワークをターゲットにします。さもないと:
using System.Web;
を使用して権利を追加しなかったかSystem.Web.dll
への参照を追加しませんでした。別の可能性もあります: WebUtility class を使用します。 WebUtility
クラスは、Microsoft自体が推奨しており、Webアプリケーションの外部で使用する必要があります。
HttpUtility
クラスと同様に、URLをエンコードおよびデコードする可能性も提供します。
このようにして、ライブラリをプロジェクトにインポートしたり、特定のプロファイルを設定したりしても問題はありません。
HttpUtilityクラスは、HttpServerUtilityクラスによって内部的に使用されます。HttpServerUtilityクラスのメソッドとプロパティは、組み込みのASP.NETサーバーオブジェクトを通じて公開されます。さらに、HttpUtilityクラスには、サーバーからアクセスできないエンコードおよびデコードユーティリティメソッドが含まれています。
Webアプリケーションの外部で値をエンコードまたはデコードするには、WebUtilityクラスを使用します。
HttpUtility
クラスは.NET 1.1に存在するため、System.Web
への参照を含めている限り、通常のプロジェクトでは「見えない」ことは不可能だと思います。
PCL( Portable Class Library )を使用している可能性があります。PCLは、選択したプラットフォーム(Windowsストアアプリ、Windows Phone、Silverlightなど)でサポートされているフレームワークの簡易バージョンを使用します。
このリンクがお役に立てば幸いです。 http://msdn.Microsoft.com/en-us/library/system.web.httputility(v = vs.110).aspx ドットネットフレームワーク4.5は、System.Webの下にあるHttpUtilityをサポートします名前空間。また、System.Web.Extensions参照なしで、プロジェクトにSystem.Web参照を追加します。動作しない場合は、既存のものを削除し、System.Webの新しい参照をプロジェクトに追加します。また、対象とするフレームワークを確認します。クライアントなしの.NET Framework 4または4.5である必要があります。