HtmlEncode từ Thư viện lớp


166

Tôi có một thư viện lớp (trong C #). Tôi cần mã hóa dữ liệu của mình bằng phương thức HtmlEncode. Điều này rất dễ thực hiện từ một ứng dụng web. Câu hỏi của tôi là, làm thế nào để tôi sử dụng phương thức này từ một thư viện lớp đang được gọi từ một ứng dụng giao diện điều khiển?

Câu trả lời:


208

Nhập System.Web Hoặc gọi System.Web.HttpUtility chứa nó

Bạn sẽ cần thêm tham chiếu vào DLL nếu nó chưa có

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

7
Bạn cần tạo một thể hiện của lớp Server Utility được thiết kế để hỗ trợ một tiến trình Yêu cầu hiện tại và mô phỏng các tính năng của đối tượng Máy chủ ASP cũ. HttpUtility là tập trọng lượng nhẹ hơn của các phương thức Tĩnh.
AnthonyWJones

3
Đảm bảo rằng loại khung của bạn không chỉ định "Hồ sơ khách hàng". Thay đổi điều này thành khung đầy đủ và bạn sẽ có sẵn hệ thống system.web
Martin Murphy

System.Web.HttpUtility không có sẵn trong dự án của tôi (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode (chuỗi) đã có sẵn và hoạt động tốt.
demonicdaron


39

Nếu bạn đang sử dụng C # 3, một mẹo hay là tạo một phương thức mở rộng để làm cho việc này trở nên đơn giản hơn nữa. Chỉ cần tạo một phương thức tĩnh (tốt nhất là trong một lớp tĩnh) như vậy:

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

Sau đó, bạn có thể làm những thứ gọn gàng như thế này:

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

25

Thử cái này

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

4
Điều này tốt hơn nhiều vì tôi không phải thêm tham chiếu đến System.Web trong dự án WPF của mình.
newman

7

Thêm một tham chiếu đến System.Web.dll và sau đó bạn có thể sử dụng lớp System.Web.HtmlUtility



3

Trong trường hợp bạn đang sử dụng SharePoint 2010, sử dụng dòng mã sau đây sẽ tránh phải tham chiếu toàn bộ thư viện System.Web:

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

2

Trong trường hợp bạn đang làm việc với silverlight, hãy sử dụng:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.