类库中的 HtmlEncode

Posted

技术标签:

【中文标题】类库中的 HtmlEncode【英文标题】:HtmlEncode from Class Library 【发布时间】:2010-11-11 18:52:16 【问题描述】:

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

【问题讨论】:

相关帖子 - HtmlEncode in C# 【参考方案1】:

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

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

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

【讨论】:

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

System.Net.WebUtility 类是 从 .NET 4.0 开始可用 (你不需要 System.Web.dll 依赖)。

【讨论】:

谢谢,现在我可以使用 .NET 4 客户端配置文件而不是完整的框架!【参考方案3】:

如果您使用的是 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();

【讨论】:

【参考方案4】:

试试这个

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

【讨论】:

这样好多了,因为我不必在我的 WPF 项目中添加对 System.Web 的引用。【参考方案5】:

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

【讨论】:

【参考方案6】:

只需引用 System.Web 程序集,然后调用: HttpServerUtility.HtmlEncode

http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.htmlencode.aspx

【讨论】:

【参考方案7】:

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

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

【讨论】:

【参考方案8】:

如果您使用的是 silverlight,请使用:

System.Windows.Browser.HttpUtility.HtmlEncode(...);

【讨论】:

以上是关于类库中的 HtmlEncode的主要内容,如果未能解决你的问题,请参考以下文章

类库中的 SignalR 集线器类

在 Avalonia 类库中的何处加载 ContentControl 样式?

java类库中的设计模式

类库中的引用不会复制到正在运行的项目 bin 文件夹中

将 Java 类库中的类替换为自定义版本

访问类库中的mustoverride属性时发生AccessViolationException