.net core 为什么微软要把AppDomain带回.NETCore3.0?
微软从内存中拿走了AppDomain,这个机制已经关闭 现在我突然发现.net core 为什么微软要把AppDomain带回.NETCore3.0?,.net-core,appdomain,.net Core,Appdomain,微软从内存中拿走了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类 我的问题是
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类
我的问题是:为什么
为什么要停产?AppDomains需要运行时支持,并且是
一般来说相当贵。虽然仍由CoreCLR实现,但
在.NET本机中不可用,我们不打算添加此功能
在那里
我应该改用什么?AppDomains用于不同的应用程序
目的。对于代码隔离,我们建议使用流程和/或
容器。对于程序集的动态加载,我们建议使用新的
AssemblyLoadContext类
此外
当然,只是因为有些东西不是
今天在.NET Core中可用并不意味着我们停止使用它。大多数
这仅仅意味着我们没有时间调查
移植是有意义的,或者认为它与
NET核心目前提供的应用程序模型。因此,这是一个领域
我们非常希望得到您的反馈
那么究竟支持什么呢
在.NET内核上,AppDomain实现受到设计和性能的限制
不提供隔离、卸载或安全边界。对于
.NET核心,只有一个AppDomain。隔离和卸载是必要的
通过AssemblyLoadContext提供。安全边界应该是
由工艺边界和适当的远程处理技术提供
它用于某些任务,但在很多情况下不受支持
方式
适用于
.NET核心
- 3.0 2.2.1 2.0
- 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
- 2.1.2.0
抛出新的NotSupportedException
或平台NotSupportedException
,具体取决于时间、地点和原因
进一步阅读