System.Web.HttpUtility.HtmlEncode(Object)做了什么?

时间:2015-08-03 15:57:17

标签: .net polymorphism html-encode

the System.Web.HttpUtility.HtmlEncode(Object) overload究竟做了什么?为什么会有一个方法将HTML编码为任何类型的对象?你会认为文档会提供更多信息,因为这种操作看起来有点模糊......

1 个答案:

答案 0 :(得分:2)

它与HttpUtility.HtmlEncode(String)做同样的事情,除了它首先将它转换为字符串。

您可以在reference source

中确切了解它的作用
public static String HtmlEncode(object value) {
    if (value == null) {
        // Return null to be consistent with HtmlEncode(string)
        return null;
    }

    var htmlString = value as IHtmlString;
    if (htmlString != null) {
        return htmlString.ToHtmlString();
    }

    return HtmlEncode(Convert.ToString(value, CultureInfo.CurrentCulture));
}

首先它检查对象是否实现IHtmlString并调用ToHtmlString(),如果它没有调用对象Convert.ToString,则使用HtmlEncode的字符串重载转换后的字符串返回结果。