类库中的 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的主要内容,如果未能解决你的问题,请参考以下文章