HtmlEncode aus der Klassenbibliothek


166

Ich habe eine Klassenbibliothek (in C #). Ich muss meine Daten mit der HtmlEncode-Methode codieren. Dies ist mit einer Webanwendung einfach zu bewerkstelligen. Meine Frage ist, wie ich diese Methode aus einer Klassenbibliothek verwende, die von einer Konsolenanwendung aufgerufen wird.

Antworten:


208

Importieren Sie System.Web oder rufen Sie die System.Web.HttpUtility auf, die es enthält

Sie müssen den Verweis zur DLL hinzufügen, falls er noch nicht vorhanden ist

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

7
Sie müssen eine Instanz der Server Utility-Klasse erstellen, die eine aktuelle Anforderung unterstützt und Funktionen des alten ASP Server-Objekts emuliert. HttpUtility ist eine leichtere Gruppe statischer Methoden.
AnthonyWJones

3
Stellen Sie sicher, dass Ihr Framework-Typ nicht "Client-Profil" angibt. Wenn Sie dies in das vollständige Framework ändern, steht Ihnen die system.web-Assembly zur Verfügung
Martin Murphy,

System.Web.HttpUtility war in meinem Projekt (.NET Framework 4.7.1) nicht verfügbar. System.Net.WebUtility.HtmlEncode (Zeichenfolge) war verfügbar und funktionierte einwandfrei.
Demonicdaron


39

Wenn Sie C # 3 verwenden, ist es ein guter Tipp, eine Erweiterungsmethode zu erstellen, um dies noch einfacher zu machen. Erstellen Sie einfach eine statische Methode (vorzugsweise in einer statischen Klasse) wie folgt:

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

Sie können dann ordentliche Sachen wie diese machen:

string encoded = "<div>I need encoding</div>".HtmlEncode();

25

Versuche dies

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

4
Dies ist viel besser, da ich in meinem WPF-Projekt keinen Verweis auf System.Web hinzufügen muss.
Newman

7

Fügen Sie einen Verweis auf System.Web.dll hinzu, und verwenden Sie dann die System.Web.HtmlUtility-Klasse



3

Wenn Sie SharePoint 2010 verwenden, müssen Sie bei Verwendung der folgenden Codezeile nicht auf die gesamte System.Web-Bibliothek verweisen:

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

2

Wenn Sie mit Silverlight arbeiten, verwenden Sie Folgendes:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.