HtmlEncode de la bibliothèque de classes


166

J'ai une bibliothèque de classes (en C #). J'ai besoin d'encoder mes données à l'aide de la méthode HtmlEncode. C'est facile à faire à partir d'une application Web. Ma question est la suivante: comment utiliser cette méthode à partir d'une bibliothèque de classes appelée à partir d'une application console?

Réponses:


208

Importez System.Web ou appelez le System.Web.HttpUtility qui le contient

Vous devrez ajouter la référence à la DLL si elle n'est pas déjà là

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

7
Vous devez créer une instance de la classe Utilitaire de serveur qui est conçue pour prendre en charge une demande en cours et émuler les fonctionnalités de l'ancien objet Serveur ASP. HttpUtility est un ensemble plus léger de méthodes statiques.
AnthonyWJones

3
Assurez-vous que votre type de framework ne spécifie pas "Client Profile". Modifie cela pour le framework complet et vous aurez l'assemblage system.web disponible
Martin Murphy

System.Web.HttpUtility n'était pas disponible dans mon projet (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode (string) était disponible et fonctionnait correctement.
demonicdaron


39

Si vous utilisez C # 3, un bon conseil est de créer une méthode d'extension pour rendre cela encore plus simple. Créez simplement une méthode statique (de préférence dans une classe statique) comme ceci:

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

Vous pouvez ensuite faire des choses intéressantes comme celle-ci:

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

25

Essaye ça

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

4
C'est beaucoup mieux car je n'ai pas à ajouter de référence à System.Web dans mon projet WPF.
newman

7

Ajoutez une référence à System.Web.dll, puis vous pouvez utiliser la classe System.Web.HtmlUtility



3

Si vous utilisez SharePoint 2010, l'utilisation de la ligne de code suivante vous évitera d'avoir à référencer l'ensemble de la bibliothèque System.Web:

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

2

Si vous travaillez avec silverlight, utilisez ceci:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.