2009-07-17 31 views
146

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ễ làm từ một ứng dụng web. Câu hỏi của tôi là, làm cách nào để 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 bảng điều khiển?HtmlEncode từ Thư viện Lớp

Trả lời

188

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

Bạn sẽ cần phải thêm tham chiếu đến DLL nếu nó không phải là đã có

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

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

+0

ghi chú hợp lệ và chỉnh sửa –

+1

vấn đề viết hoa: HtmlEncode – Nathan

6

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

40

Nếu bạn đang sử dụng C# 3, mẹo tốt là tạo một phương pháp mở rộng để làm điều này đơn giản hơn. Chỉ cần tạo ra một phương pháp tĩnh (tốt nhất là trong một lớp học tĩnh) như sau:

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

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

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

System.Net.WebUtility lớp là sẵn bắt đầu từ NET 4.0 (Bạn không cần phụ thuộc System.Web.dll).

+7

Cảm ơn, Bây giờ tôi có thể sử dụng .NET 4 Client Profile thay vì khung làm việc đầy đủ! – Annagram

2

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

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

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

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

Hãy thử điều này

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

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

Các vấn đề liên quan