HtmlEncode dalla libreria di classi


166

Ho una biblioteca di classe (in C #). Devo codificare i miei dati usando il metodo HtmlEncode. Questo è facile da fare da un'applicazione web. La mia domanda è: come posso usare questo metodo da una libreria di classi che viene chiamata da un'applicazione console?

Risposte:


208

Importa System.Web O chiama il System.Web.HttpUtility che lo contiene

Sarà necessario aggiungere il riferimento alla DLL se non è già presente

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

7
È necessario creare un'istanza della classe Server Utility progettata per supportare una richiesta in corso in corso ed emulare le caratteristiche dell'oggetto ASP Server precedente. HttpUtility è un insieme più leggero di metodi statici.
AnthonyWJones,

3
Assicurarsi che il tipo di framework non specifichi "Profilo client". Cambia questo nel framework completo e avrai l'assemblaggio system.web disponibile
Martin Murphy,

System.Web.HttpUtility non era disponibile nel mio progetto (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode (stringa) era disponibile e funzionava bene.
demonicdaron,


39

Se stai usando C # 3, un buon consiglio è quello di creare un metodo di estensione per renderlo ancora più semplice. Basta creare un metodo statico (preferibilmente in una classe statica) in questo modo:

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

Puoi quindi fare cose ordinate come questa:

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

25

Prova questo

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

4
Questo è molto meglio perché non devo aggiungere riferimenti a System.Web nel mio progetto WPF.
Newman

7

Aggiungere un riferimento a System.Web.dll e quindi è possibile utilizzare la classe System.Web.HtmlUtility



3

Nel caso in cui si utilizzi SharePoint 2010, l'utilizzo della seguente riga di codice eviterà di fare riferimento all'intera libreria System.Web:

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

2

Nel caso in cui lavori con Silverlight, usa questo:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.