类库中的HtmlEncode

Vil*_*ger 164 c# html-encode

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

Rus*_*rry 206

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

如果不存在,则需要添加对DLL的引用

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

  • 您需要创建Server Utility类的实例,该实例旨在支持当前正在进行的请求并模拟旧ASP Server对象的功能.HttpUtility是一组重量较轻的静态方法. (7认同)
  • 确保您的框架类型未指定"客户端配置文件".将其更改为完整框架,您将拥有system.web程序集 (3认同)
  • System.Web.HttpUtility 在我的项目(.NET Framework 4.7.1)中不可用。System.Net.WebUtility.HtmlEncode(string) 可用并且工作正常。 (3认同)

Geo*_*dze 203

System.Net.WebUtility class从.NET 4.0开始可用(您不需要System.Web.dll依赖项).

  • 谢谢,现在我可以使用.NET 4 Client Profile而不是完整的框架! (7认同)

Dan*_*plo 39

如果你正在使用C#3,一个很好的建议是创建一个扩展方法,使其更简单.只需创建一个静态方法(最好是在静态类中),如下所示:

public static class Extensions
{
    public static string HtmlEncode(this string s)
    {
        return HttpUtility.HtmlEncode(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以做这样的整洁的东西:

string encoded = "<div>I need encoding</div>".HtmlEncode();
Run Code Online (Sandbox Code Playgroud)


Pal*_*mar 24

试试这个

System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);
Run Code Online (Sandbox Code Playgroud)

  • 这要好得多,因为我不必在WPF项目中添加对System.Web的引用. (4认同)

Ant*_*nes 7

添加对System.Web.dll的引用,然后您可以使用System.Web.HtmlUtility类