2016-08-18 29 views
29

Tôi bị nhầm lẫn với bao bì HttpClient. Trước đó nó được phân phối như là một phần của gói Microsoft.Http.Net NuGet trong khi System.Net.Http được coi là di sản. Có vẻ như bây giờ nó ngược lại: có một gói System.Net.Http mới cho tất cả các nền tảng và Microsoft.Net.Http chưa được cập nhật trong một thời gian và theo những người ở nhóm phát triển của Microsoft sẽ không còn được dùng nữa.Trạng thái hiện tại của System.Net.Http so với Microsoft.Net.Http

câu hỏi sau đó:

  • Chúng ta có thể thay thế phụ thuộc vào Microsoft.Net.Http gói với (mới nhất) System.Net.Http NuGet?
  • Nền tảng .NET 4.0 cũ có nên sử dụng Microsoft.Net.Http không? Điều gì về nền tảng không phải Windows (iOS, Android)? Các System.Net.Http mới hỗ trợ chúng, nhưng tôi nhớ với Microsoft.Net.Http Tôi đã phải cài đặt bổ sung Microsoft.Bcl.BuildMicrosoft.Bcl để có được công cụ đa nền tảng hoạt động. System.Net.Http không phụ thuộc vào chúng. Các gói Bcl có thể bị bỏ qua không?
  • System.Net.Http thiếu một số phương thức mở rộng của Http, như SupportsPreAuthenticate và cố gắng gọi các phương thức này dẫn đến lỗi thời gian chạy (phương pháp bị thiếu). Làm thế nào chúng ta nên đối phó với điều này?
+1

Bản sao có thể có của [System.Net.Http vs Microsoft.Net.Http] (http://stackoverflow.com/questions/31053243/system-net-http-vs-microsoft-net-http) – DonO

+1

Chỉ cần cung cấp một lý do có thể cho sự thay đổi: Các tính năng ngăn xếp mạng khác nhau một chút giữa nền tảng Windows và các hệ điều hành khác. Tôi đã gặp rắc rối khi sử dụng một ứng dụng .NET được viết cho Windows trong môi trường Mono chẳng hạn. Sự thay đổi có thể chỉ ra rằng cuối cùng nó sẽ có thể thực sự là nền tảng độc lập, điều này có thể là lý do tại sao chúng di chuyển mọi thứ vào không gian tên System. Tìm kiếm các tham chiếu đến gói Http này từ .NET Core, có thể trả lời câu hỏi của bạn. – flohack

Trả lời

6

Điều này đã xảy ra trong một thời gian dài và tiếp tục gây nhầm lẫn. Tôi đã nhìn thấy tin nhắn như vậy bản thân mình, nhưng ngay bây giờ, nó xuất hiện System.Net.Http là sự lựa chọn chính xác, ít nhất là cho NET trên nền tảng Windows và không có phụ thuộc bên ngoài.

Đối với .NET Core, tôi đã sử dụng Microsoft.Net.Http mặc dù yêu cầu Microsoft.BCL. Trừ khi bạn đang gặp vấn đề, tôi khuyên bạn nên để lại các hệ thống cũ như hiện nay, đặc biệt là vì các không gian tên này dường như là mục tiêu di chuyển.

Nếu điều đó không gây nhầm lẫn cho bạn, thì HttpClient Sample được liên kết từ System.Net.Http sử dụng Windows.Web.Http! Triển khai đó dành cho các ứng dụng Windows Store.

Có lẽ năm tới tất cả sẽ thay đổi một lần nữa.

+5

OMG .. chúng ta không thể nhận được câu trả lời chính xác từ một người có thẩm quyền? :( –

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