HtmlEncode da Biblioteca de classes

166

Eu tenho uma biblioteca de classes (em c #). Preciso codificar meus dados usando o método HtmlEncode. Isso é fácil de fazer a partir de um aplicativo da web. Minha pergunta é: como uso esse método em uma biblioteca de classes que está sendo chamada de um aplicativo de console?

Aldeão
fonte

Respostas:

208

Importar System.Web Ou ligue para o System.Web.HttpUtility que o contém

Você precisará adicionar a referência à DLL se ela ainda não estiver lá

string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);
Russ Bradberry
fonte
7
Você precisa criar uma instância da classe Server Utility, projetada para oferecer suporte a uma Solicitação atual em andamento e emular os recursos do antigo objeto do ASP Server. HttpUtility é um conjunto mais leve de métodos estáticos.
AnthonyWJones
3
Verifique se o seu tipo de estrutura não especifica "Perfil do cliente". Altera isso para a estrutura completa e você terá o assembly system.web disponível
Martin Murphy
System.Web.HttpUtility não estava disponível no meu projeto (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode (string) estava disponível e funcionou bem.
Demonicdaron 04/07/19
204

System.Net.WebUtility A classe está disponível a partir do .NET 4.0 (você não precisa da dependência do System.Web.dll).

George Chakhidze
fonte
7
Obrigado, agora eu posso usar o .NET 4 Client Profile em vez da estrutura completa!
Annagram
39

Se você estiver usando o C # 3, uma boa dica é criar um método de extensão para tornar isso ainda mais simples. Basta criar um método estático (de preferência em uma classe estática) da seguinte forma:

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

Você pode então fazer coisas legais como esta:

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

Tente isto

System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);
Palanikumar
fonte
4
Isso é muito melhor porque não preciso adicionar referência ao System.Web no meu projeto WPF.
newman
7

Adicione uma referência ao System.Web.dll e, em seguida, você pode usar a classe System.Web.HtmlUtility

AnthonyWJones
fonte
3

Caso você esteja usando o SharePoint 2010, a seguinte linha de código evitará ter que fazer referência a toda a biblioteca System.Web:

Microsoft.SharePoint.Utilities.SPHttpUtility.HtmlEncode(stringToEncode);
Koen Zomers
fonte
2

Caso esteja trabalhando com o silverlight, use o seguinte:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
Jonx
fonte