2009-07-17 4 views
146

Ho una libreria di classi (in C#). Ho bisogno di codificare i miei dati usando il metodo HtmlEncode. Questo è facile da fare da un'applicazione web. La mia domanda è, come posso utilizzare questo metodo da una libreria di classi che viene chiamata da un'applicazione console?HtmlEncode from Class Library

risposta

188

Import System.Web Oppure chiamare lo System.Web.HttpUtility che lo contiene

Sarà necessario aggiungere il riferimento alla DLL, se non v'è già

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

È necessario creare un'istanza della classe Server Utility che è stato progettato per sostenere un corrente in corso Richiedi ed emula le funzionalità del vecchio oggetto ASP Server. HttpUtility è un insieme più leggero di metodi statici. – AnthonyWJones

+0

debitamente annotato e modificato –

+1

argomenti di capitalizzazione: HtmlEncode – Nathan

6

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

40

Se si utilizza 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); 
    } 
} 

È quindi possibile fare roba pulita come questa:

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

System.Net.WebUtility classe è disponibile a partire da NET 4.0 (Non hai bisogno della dipendenza da System.Web.dll).

+7

Grazie, Ora posso usare il profilo client .NET 4 invece del framework completo! – Annagram

2

Nel caso in cui si sta lavorando con Silverlight, utilizzare questo:

System.Windows.Browser.HttpUtility.HtmlEncode(...); 
3

Nel caso in cui si sta utilizzando SharePoint 2010, utilizzando la seguente riga di codice eviterà di dover fare riferimento l'intera libreria System.Web:

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

Prova questa

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