.net core 2.0支持程序集动态加载,.net core 3.0支持程序集动态卸载
程序集动态加载卸载使用AssemblyLoadContext
每个程序都具有一个默认的AssemblyLoadContext,AssemblyLoadContext包含以加载的程序集集合,当AssemblyLoadContext被卸载时,对应的程序集也会在下一次GC回收时被回收
要创建新的AssemblyLoadContext需要实现AssemblyLoadContext
public class ActuatorAssemblyLoadContext : AssemblyLoadContext
{
public ActuatorAssemblyLoadContext() : base(isCollectible: true)
{
}
}
使用new创建一个AssemblyLoadContext
var assemblyLoadContext = new ActuatorAssemblyLoadContext();
使用Load系列方法加载程序集,方法返回程序集
var actuatorsAssembly =assemblyLoadContext.LoadFromStream(ms);
使用Unload方法卸载AssemblyLoadContext
assemblyLoadContext.Unload();
动态加载与卸载程序集
.NET Core 2.0引入了程序集动态加载特性,3.0则进一步支持动态卸载。通过AssemblyLoadContext可以实现按需加载和卸载程序集,有效提升资源管理和应用灵活性。本文详细介绍了如何利用AssemblyLoadContext进行程序集的动态加载与卸载。
1799

被折叠的 条评论
为什么被折叠?



