从 Activator.CreateInstance() 处理一个实例

Disposing Of An Instance from Activator.CreateInstance()

我有一个带有插件系统的软件,它使用 Assembly.Load() + Activator.CreateInstance() 加载 DLL。我遇到的问题是插件使进程保持打开状态,例如,如果我关闭主进程 window,该进程仍然在后台保持打开状态并且无法正确关闭。

我的问题是,是否可以 remove/unload 由 Activator.CreateInstance() 创建的实例?我尝试将对象设置为 null 并按照另一个问题中的建议调用 GC.Collect() ,但这无济于事...

 async public void AddServerModule(Assembly module)
 {
    Type type = module.GetType("ModularModule.ModularModule");
    object instance = Activator.CreateInstance(type, new object[] { this });
    ...
 }

我通过使插件成为一次性插件,然后在 Dispose() 方法中调用 Close() 来解决这个问题。