从 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() 来解决这个问题。
我有一个带有插件系统的软件,它使用 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() 来解决这个问题。