.NET 4.6引入了AsyncLocal<T>用于沿异步控制流流动环境数据的类.我以前用过CallContext.LogicalGet/SetData这个目的,我想知道两者在语义上是否以及以何种方式不同(除了明显的API差异,如强类型和缺乏对字符串键的依赖).
背景:我们正在开展的项目由多个共享两个库的解决方案组成。一切都写在.NET Framework 4.6.1今天。该项目的目标是采用.NET Core新项目并能够在Docker.
随着新版本的发布.NET Standard 2.1以及.NET Framework 4.8将保留.NET Standard 2.0而不是实施的事实,.NET Standard 2.1感觉是开始的合适时机。微软的 Immo Landwerth 说:
但同样正确的是 .NET Framework 的创新速度必须放慢以减少损坏。从这个意义上说,您通常应该期望大多数新功能只会在 .NET Core(以及派生平台,例如 Xamarin、Mono 和 Unity,因为它们从与 .NET Core 相同的源构建)上可用。
https://blogs.msdn.microsoft.com/dotnet/2018/11/05/annoucing-net-standard-2-1/
我们希望能够访问新项目中的新功能,但不想将每个旧项目都转换为.NET Core. 为了保持.NET Framework和.NET Core我们之间的兼容性,我们决定将我们的共享库转换为.NET Standard 2.0.
https://docs.microsoft.com/en-us/dotnet/standard/net-standard
除了以下依赖项之外,这非常有效:
1. System.Net.Http.WebRequestHandler - 已解决
用于像这样的客户端证书:
WebRequestHandler requestHandler = new WebRequestHandler();
//Add certificate if setting exists
if (!string.IsNullOrEmpty(pushEvent?.CertificateThumbprint?.Thumbprint))
{ …Run Code Online (Sandbox Code Playgroud)