Microsoft为什么将AppDomain带回.NET Core 3.0?

问题描述 投票:0回答:1

[从内存中,Microsoft夺走了AppDomain,并且该机制已关闭。

现在我突然发现AppDomain已经回来:

Assembly System.Runtime.Extensions,版本= 4.2.1.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a \ dotnet \ packs \ Microsoft.NETCore.App.Ref \ 3.0.0 \ ref \ netcoreapp3.0 \ System.Runtime.Extensions.dll

程序集包含AppDomain类。

这是我的问题:为什么?

.net-core appdomain
1个回答
0
投票

Porting to .NET Core

为什么停产? AppDomains需要运行时支持,并且通常相当昂贵。虽然仍由CoreCLR实施,在.NET Native中不可用,我们不打算添加它有能力。

我应该改用什么? AppDomain用于不同的目的。对于代码隔离,我们建议使用流程和/或容器。对于组件的动态加载,我们建议使用新的AssemblyLoadContext类。

此外

当然,只是因为某些东西不是今天在.NET Core中可用并不意味着我们已停止使用它。多数情况情况,这仅表示我们没有时间调查是否移植会有意义或不认为与.NET Core当前提供的应用程序模型。因此,这是一个区域我们非常希望获得您的反馈。

那么实际支持什么?

AppDomain Class

在.NET Core上,AppDomain实现受到设计和不提供隔离,卸载或安全性边界。对于.NET Core中只有一个AppDomain。隔离和卸载是通过AssemblyLoadContext提供。安全边界应为由过程边界和适当的远程处理技术提供。

它用于某些任务,但是在很多情况下不支持方式。

适用于

。NET Core

  • 3.0 2.2 2.1 2.0

。NET Framework

  • 4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6 4.5.2 4.5.1 4.5 4.0 3.5 3.0 2.0 1.1

。NET标准

  • 2.1 2.0

那么,如果您使用不受支持的内容,会发生什么?

它不在那里,或者根据何时何地以及原因,您会得到明显的throw new NotSupportedExceptionPlatformNotSupportedException讨厌

进一步阅读

© www.soinside.com 2019 - 2024. All rights reserved.