繁体   English   中英

完整的C#noob,VS2010,不能使用HttpServerUtility.UrlEncode?

[英]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.EscapeDataStringUri.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM