是否可以卸载在dotnet核心中动态加载的程序集?

时间:2017-03-30 01:25:31

标签: c# .net-core

.net框架中的

可以在单独的AppDomain中加载程序集然后卸载它。 在.net核心AppDomain不可用,并由AssemblyLoadContext取代。 我可以将程序集加载到AssemblyLoadContext,如下所示:

 var assembly = AssemblyLoadContext.Default.LoadFromStream(stream);

有什么方法可以卸载吗?

1 个答案:

答案 0 :(得分:7)

请查看此链接here

卸载api尚未完成。

namespace System.Runtime.Loader
{
    public class AssemblyLoadContext
    {
        // Allow to create an unloadable ALC. The default constructor
        // will call this method with false
        protected AssemblyLoadContext(bool unloadable);

        // Returns true if this ALC is collectible
        public bool Unloadable {get; }

        // Allows to explicitly unload an ALC. Once this method is called,
        // any call to LoadFromXXX method will throw an exception
        public void Unload();
    }
}

卸载api存在一个未解决的问题,并且api已被批准可能在未来版本中发布,因为里程碑位于Future标签下。