.net core 3.0中動態卸載程序集

動態加載程序集在一些插件式的應用中很是常見,.net core 2.0中能夠經過AssemblyLoadContext中提供程序集的動態加載功能,但取不支持卸載。如今,在.net core 3.0中提供了程序集卸載的支持(Collectible AssemblyLoadContext),更加完善了這方面的功能。web

因爲AssemblyLoadContext是一個抽象類,要實現這個動態程序集回收,須要實現本身的AssemblyLoadContext類,而且設置基類構造函數isCollectible爲true。api

public class CollectibleAssemblyLoadContext : AssemblyLoadContext
{
    public CollectibleAssemblyLoadContext() : base(isCollectible: true)
    { }
}

經過上面的設置後,咱們就能夠經過CollectibleAssemblyLoadContext 對象的Unload函數來實現程序集的卸載了。被卸載的程序集會在下一次GC的時候完全回收。函數

參考文章:spa

相關文章
相關標籤/搜索