[英]Complete C# noob, VS2010, cannot use HttpServerUtility.UrlEncode?
所以,我是C#的完整菜鸟。 我有一个我需要编码的网址,以便使用urlencoded帖子。
问题是,我发现的每个资源都说使用System.Web.HttpServerUtility.UrlEncode。 或者,我已经看到资源告诉我使用System.Web.Util.HttpEncoder()。
我添加了对system.web的引用,但是得到了“system.web命名空间中不存在”和“system.web.util命名空间中不存在”错误。
任何提示都会很好!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string url = HttpUtility.UrlEncode("http://stackoverflow.com/");
MessageBox.Show(url);
}
}
}
您可能正在使用.NET 4 Client Profile,它不包含System.Web.dll
- 或者您还没有添加对它的引用。 如果进入项目属性,在“应用程序”下选择“.NET Framework 4”作为目标框架,而不是“.NET Framework 4 Client Profile”。 然后,您应该能够添加对System.Web
程序集的引用。
(请注意,装配不一样的命名空间。集引用添加到项目中,而您通常使用的命名空间“添加”到一个单独的文件using
顶部的指令。你已经得到了using
指令的System.Web
命名空间,但这不会帮助您使用HttpServerUtility
而不引用System.Web
程序集。)
或者,根据您的具体要求,您可以使用Uri.EscapeDataString
或Uri.EscapeUriString
。 这两个都可以在客户端配置文件中找到。 有这么多不同的方法做到这一点有点烦人 - 挑选正确的方法可能很棘手:(
您可能需要将System.Web
程序集的引用添加到项目中:
我相信你没有添加引用System.Web.dll中。
引用和命名空间导入是不同的东西。 命名空间是一种将相关类组合在一起的方法,因此与集合相关的所有类都驻留在System.Collections中,所有Windows窗体都在System.Windows.Forms中,您可能还希望组织项目以分离业务逻辑,表示和数据访问不同的命名空间。
但名称空间纯粹是合乎逻辑的。 您可以构建几个将类添加到相同名称空间的库,也可以在一个项目中使用多个名称空间。
您使用using语句在此处导入了System.Web命名空间 :
using System.Web;
它只意味着不是通过它的全名 System.Web.HttpUtility访问类,而是只编写HttpUtility,编译器会推断你的意思是System.Web。
但是,对于Windows应用程序,默认情况下不会引用名为System.Web.dll的库本身 。 这意味着现在编译器甚至都不知道System.Web类。
要添加对物理库文件的引用,请右键单击项目“ 引用”文件夹,选择“ 添加引用... ”并选择System.Web.dll 。
而且,名称空间只是逻辑分组,程序集是硬盘驱动器上的物理文件。
祝你好运,丹
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.