我正在开发一个应用程序扩展系统(插件),其中每个插件都应隔离到单独的AppDomain
中。这项工作即将完成,但是还有一个重要的问题,关于AppDomain
应该使用多长时间。
该系统在服务器端使用,它定期使用插件,假设它应该每十分钟调用一次每个插件。在这种情况下,考虑到AppDomain
的各种开销,哪个更合适?
AppDomain
实例,并在应用程序的整个生命周期中保持它们有效(因此,每个插件调用将进入每个插件相同的AppDomain
)。Appdomain
个实例,然后Unload
个实例。答案 0 :(得分:1)
使用AppDomain.CreateDomain(...)
:
1)。为每个插件创建一个新的应用程序域,并在整个应用程序生命周期中将其保持活动状态
2)。为每个插件调用创建新的应用程序域,并在之后卸载
如果每个插件有很多调用,并且有大量的.dll,请使用选项1
如果每个插件有很多调用,并且有少量的.dll,请使用选项2
如果每个插件调用次数很少,而.dll则很少,请使用选项2
如果您希望在通话之间进行沙箱操作,请使用选项2