来自类库的HtmlEncode


166

我有一个类库(在C#中)。我需要使用HtmlEncode方法对数据进行编码。通过Web应用程序很容易做到这一点。我的问题是,如何从控制台应用程序调用的类库中使用此方法?

Answers:


208

导入System.Web或调用包含它的System.Web.HttpUtility

您将需要添加对DLL的引用(如果尚未存在)

string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);

7
您需要创建Server Utility类的实例,该实例旨在支持当前进行中的Request和模拟旧ASP Server对象的功能。HttpUtility是一组重量较轻的Static方法。
AnthonyWJones

3
确保您的框架类型未指定“客户端配置文件”。将其更改为完整的框架,您将可以使用system.web程序集
Martin Murphy'2

System.Web.HttpUtility在我的项目(.NET Framework 4.7.1)中不可用。System.Net.WebUtility.HtmlEncode(string)可用并且工作正常。
demonicdaron


39

如果您使用的是C#3,一个很好的技巧是创建一个扩展方法,以使其变得更加简单。只需创建一个静态方法(最好在静态类中),如下所示:

public static class Extensions
{
    public static string HtmlEncode(this string s)
    {
        return HttpUtility.HtmlEncode(s);
    }
}

然后,您可以执行以下整洁的工作:

string encoded = "<div>I need encoding</div>".HtmlEncode();

25

试试这个

System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);

4
这样好得多,因为我不必在WPF项目中添加对System.Web的引用。
纽曼



3

如果您使用的是SharePoint 2010,则使用以下代码行将避免引用整个System.Web库:

Microsoft.SharePoint.Utilities.SPHttpUtility.HtmlEncode(stringToEncode);

2

如果您正在使用Silverlight,请使用以下命令:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.