HtmlEncode z biblioteki klas

166

Mam bibliotekę klas (w C #). Muszę zakodować moje dane za pomocą metody HtmlEncode. Można to łatwo zrobić z poziomu aplikacji internetowej. Moje pytanie brzmi: jak używać tej metody z biblioteki klas, która jest wywoływana z aplikacji konsoli?

Wieśniak
źródło

Odpowiedzi:

208

Importuj System.Web Lub wywołaj System.Web.HttpUtility, który go zawiera

Będziesz musiał dodać odwołanie do biblioteki DLL, jeśli jeszcze jej tam nie ma

string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);
Russ Bradberry
źródło
7
Należy utworzyć instancję klasy Server Utility przeznaczoną do obsługi aktualnie trwającego żądania i emulowania funkcji starego obiektu ASP Server. HttpUtility to lżejszy zestaw metod statycznych.
AnthonyWJones,
3
Upewnij się, że typ struktury nie określa „Profilu klienta”. Zmieni to na pełną strukturę i będziesz mieć dostępny zestaw system.web
Martin Murphy
System.Web.HttpUtility nie był dostępny w moim projekcie (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode (string) był dostępny i działał dobrze.
demonicdaron
204

System.Net.WebUtility jest dostępna począwszy od .NET 4.0 (nie potrzebujesz zależności System.Web.dll).

George Chakhidze
źródło
7
Dzięki, teraz mogę korzystać z profilu klienta .NET 4 zamiast pełnego frameworka!
Annagram,
39

Jeśli używasz języka C # 3, dobrą wskazówką jest utworzenie metody rozszerzenia, aby było to jeszcze prostsze. Po prostu utwórz metodę statyczną (najlepiej w klasie statycznej) w następujący sposób:

public static class Extensions
{
    public static string HtmlEncode(this string s)
    {
        return HttpUtility.HtmlEncode(s);
    }
}

Możesz wtedy robić takie fajne rzeczy:

string encoded = "<div>I need encoding</div>".HtmlEncode();
Dan Diplo
źródło
25

Spróbuj tego

System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);
Palanikumar
źródło
4
Jest to o wiele lepsze, ponieważ nie muszę dodawać odwołania do System.Web w moim projekcie WPF.
newman
7

Dodaj odwołanie do System.Web.dll, a następnie możesz użyć klasy System.Web.HtmlUtility

AnthonyWJones
źródło
3

W przypadku korzystania z programu SharePoint 2010 użycie następującego wiersza kodu pozwoli uniknąć konieczności odwoływania się do całej biblioteki System.Web:

Microsoft.SharePoint.Utilities.SPHttpUtility.HtmlEncode(stringToEncode);
Koen Zomers
źródło
2

Jeśli pracujesz z Silverlight, użyj tego:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
Jonx
źródło