HtmlEncode из библиотеки классов

166

У меня есть библиотека классов (в C #). Мне нужно кодировать мои данные, используя метод HtmlEncode. Это легко сделать из веб-приложения. У меня вопрос, как мне использовать этот метод из библиотеки классов, которая вызывается из консольного приложения?

сельский житель
источник

Ответы:

208

Импортируйте System.Web или вызовите утилиту System.Web.Http, которая ее содержит

Вам нужно будет добавить ссылку на DLL, если ее там еще нет

string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);
Расс Брэдберри
источник
7
Вам необходимо создать экземпляр класса Server Utility, который предназначен для поддержки текущего выполняемого запроса и эмуляции функций старого объекта ASP Server. HttpUtility - это более легкий набор статических методов.
AnthonyWJones
3
Убедитесь, что в вашем типе фреймворка не указан «Профиль клиента». Измените это на полный каркас, и вы получите доступную сборку system.web
Мартин Мерфи
System.Web.HttpUtility не был доступен в моем проекте (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode (string) был доступен и работал нормально.
Демоникдарон
204

System.Net.WebUtility класс доступен начиная с .NET 4.0 (вам не нужна зависимость System.Web.dll).

Георгий Чахидзе
источник
7
Спасибо, теперь я могу использовать .NET 4 Client Profile вместо полного фреймворка!
Аннаграм
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);
Palanikumar
источник
4
Это намного лучше, потому что мне не нужно добавлять ссылку на System.Web в моем проекте WPF.
новичок
7

Добавьте ссылку на System.Web.dll, а затем вы можете использовать класс System.Web.HtmlUtility.

AnthonyWJones
источник
3

Если вы используете SharePoint 2010, используйте следующую строку кода, чтобы избежать ссылки на всю библиотеку System.Web:

Microsoft.SharePoint.Utilities.SPHttpUtility.HtmlEncode(stringToEncode);
Коен Зомерс
источник
2

Если вы работаете с Silverlight, используйте это:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
Jonx
источник