System.Net.Http与Microsoft.Net.Http的当前状态

Vag*_*lov 36 c# httpclient base-class-library nuget

我对包装感到困惑HttpClient.之前它被分发为Microsoft.Http.NetNuGet包的一部分,而System.Net.Http被认为是遗留的.现在看起来恰恰相反:System.Net.Http所有平台Microsoft.Net.Http都有一个全新的软件包,并且暂时没有更新,据微软开发团队的人员称,将被弃用.

那么问题:

  • 我们可以Microsoft.Net.Http用(最新的)替换NuGet包的依赖项System.Net.Http吗?
  • 遗留的.NET 4.0平台是否仍然使用Microsoft.Net.Http?那么非Windows平台(iOS,Android)呢?新的System.Net.Http支持他们,但我记得Microsoft.Net.Http我只好另外安装Microsoft.Bcl.Build,并Microsoft.Bcl以获得跨平台的东西的工作.System.Net.Http不依赖于他们.可以跳过Bcl包吗?
  • System.Net.Http缺少一些Http扩展方法,SupportsPreAuthenticate并试图调用这些方法导致运行时错误(缺少方法).我们该如何应对?

小智 10

这已经很长时间了并且仍然令人困惑.我自己看过这样的消息,但截至目前,看起来System.Net.Http是正确的选择,至少对于Windows平台上的.NET而言没有外部依赖性.

对于.NET Core,我使用过Microsoft.Net.Http,尽管它确实需要Microsoft.BCL.除非您遇到问题,否则我建议保留旧系统,特别是因为这些命名空间似乎是移动目标.

如果这对您来说不够混淆,那么链接的HttpClient示例System.Net.Http使用Windows.Web.Http!该实现适用于Windows应用商店应用.

也许明年这一切都会再次改变.

  • OMG ..我们不能从有权威的人那里得到规范的回答吗?:( (7认同)