2012-09-14 16 views
1

我有有public Assembly LoadedAssembly { set; get; }如何删除应用于类属性的程序集?

var assemblyName = AssemblyName.GetAssemblyName(fullPathToDLLFile); 
myClass.LoadedAssembly = Assembly.Load(assemblyName); 

该类我一直Application.Current.Properties["MyClass"]下的类。

我尝试将它清空,如Application.Current.Properties["MyClass"] = null;但它没有帮助。

我看到加载的程序集工作(它内部有一个计时器,它正在工作)。

我该如何清洁它?

(我不使用类似AppDomain d = AppDomain.CreateDomain("NewDomain", null, domaininfo);加载程序集。)

回答

3

不能随意卸载的组件,而是必须在卸载该组件加载的应用程序域(其卸载所有组件在AppDomain中)。如果你没有加载到单独的AppDomain中,那么唯一的方法就是关闭应用程序。

有在这是为什么不支持与细节这个问题的各个环节:How to unload an assembly from the primary AppDomain?

2

您不能卸载程序集,但你可以卸载你加载的程序集到的AppDomain。 请参阅this解释。

相关问题