2010-04-04 41 views
34

Khung .Net thông thường chứa HttpUtility.UrlEncode trong Hội đồng System.Web và trong Silverlight nó xuất hiện nó đã được chuyển đến System.Windows.Browser. Nhưng trong Windows Phone 7 (mà tôi nghĩ là giống như Silverlight) tôi dường như không thể tìm thấy một cách thích hợp để UrlEncode bất cứ điều gì. Cả các hội đồng được đề cập trước đây đều không có trong môi trường Windows Phone 7.HttpUtility.UrlEncode trong Windows Phone 7?

Trả lời

58

Silverlight có Uri.EscapeUriStringUri.EscapeDataString có thể được sử dụng để mã hóa URL các phần của URI như chuỗi truy vấn và thành phần đường dẫn và như vậy.

Ngay cả trong khung làm việc trên máy tính, bạn không bao giờ nên phụ thuộc vào System.Web.dll chỉ dành cho HttpUtility, mặc dù nhiều nhà phát triển vẫn làm điều đó. Điều này là xấu vì 3 lý do.

  • Lắp ráp rất lớn và tải nó có thể làm chậm trễ đáng kể cho ứng dụng của bạn.
  • Bạn sẽ làm đầy bộ quy trình làm việc của mình trong khoảng 20 dòng mã.
  • Nó làm cho ứng dụng của bạn yêu cầu khung làm việc đầy đủ vì System.Web không có trong hồ sơ khách hàng.

Ngoài các phương thức thoát Uri được mô tả ở trên, nếu bạn cần HtmlEncode, tôi sẽ chỉ tách mã số that someone else wrote và thả mã vào ứng dụng của bạn.

+4

+1, cũng là cách tiếp cận chính xác trong mọi ứng dụng khách .NET không chỉ là Silverlgiht. HttpUtility là trong System.Web.dll được thiết kế để cung cấp kết thúc máy chủ của Web. – AnthonyWJones

+0

Thật vậy, tôi vừa viết một ứng dụng tìm kiếm/xem twitter sử dụng ứng dụng này để chúng hoạt động. – RoguePlanetoid

+0

Về HtmlEncode/HtmlDecode, nó không chỉ ở System.Web của .NET framework đầy đủ: .NET 4 Client Profile có System.Net.WebUtility, Silverlight có System.Windows.Browser.HttpUtility và Windows Phone có System.Net.HttpUtility –

25

HttpUtility.UrlEncodeHttpUtility.UrlDecode nằm trong Windows Phone 7, chúng chỉ được di chuyển.

Tìm chúng trong System.Net.HttpUtility trong assembly System.Windows.dll.

+1

bây giờ là System.Net.WebUtility.UrlEncode – waza123

0

Bây giờ nó được giải quyết. Bạn có thể sử dụng:

Windows.Data.Html.HtmlUtilities.ConvertToText("your_html_string");