HtmlEncode dari Perpustakaan Kelas

166

Saya memiliki perpustakaan kelas (dalam C #). Saya perlu menyandikan data saya menggunakan metode HtmlEncode. Ini mudah dilakukan dari aplikasi web. Pertanyaan saya adalah, bagaimana cara menggunakan metode ini dari pustaka kelas yang dipanggil dari aplikasi konsol?

Orang desa
sumber

Jawaban:

208

Impor System.Web Atau panggil System.Web.HttpUtility yang berisi itu

Anda perlu menambahkan referensi ke DLL jika belum ada di sana

string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);
Russ Bradberry
sumber
7
Anda perlu membuat turunan dari kelas Server Utility yang dirancang untuk mendukung Permintaan saat ini dalam proses dan meniru fitur objek ASP Server lama. HttpUtility adalah seperangkat metode Statis yang lebih ringan.
AnthonyWJones
3
Pastikan bahwa jenis kerangka kerja Anda tidak menentukan "Profil Klien". Mengubah ini ke kerangka penuh dan Anda akan memiliki perakitan system.web tersedia
Martin Murphy
System.Web.HttpUtility tidak tersedia di proyek saya (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode (string) tersedia dan berfungsi dengan baik.
demonicdaron
204

System.Net.WebUtility kelas tersedia mulai dari. NET 4.0 (Anda tidak perlu ketergantungan System.Web.dll).

George Chakhidze
sumber
7
Terima kasih, Sekarang saya dapat menggunakan .NET 4 Client Profile daripada kerangka penuh!
Annagram
39

Jika Anda menggunakan C # 3 tip yang baik adalah membuat metode ekstensi untuk membuatnya lebih sederhana. Cukup buat metode statis (lebih disukai di kelas statis) seperti:

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

Anda kemudian dapat melakukan hal-hal yang rapi seperti ini:

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

Coba ini

System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);
Palanikumar
sumber
4
Ini jauh lebih baik karena saya tidak perlu menambahkan referensi ke System.Web dalam proyek WPF saya.
pendatang baru
7

Tambahkan referensi ke System.Web.dll dan kemudian Anda bisa menggunakan kelas System.Web.HtmlUtility

AnthonyWJones
sumber
3

Jika Anda menggunakan SharePoint 2010, menggunakan baris kode berikut akan menghindari referensi seluruh perpustakaan System.Web:

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

Jika Anda bekerja dengan silverlight, gunakan ini:

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