.net中的插件架构:卸载

我需要在c#/ .net中实现一个插件架构才能加载

  • 自定义用户定义的操作
  • 数据类型处理自定义数据网格/转换/ …的代码

来自非静态链接的程序集文件。

因为应用程序必须处理许多自定义用户定义的操作,所以Iam需要在执行后卸载它们以减少内存使用。

我发现了几篇关于插件架构的好文章,例如:

  • ExtensionManager
  • PluginArchitecture

但他们都没有给我足够的香肠来正确地卸下组件。

由于要分发程序并且用户定义的操作(如名称所示)用户定义:如何防止程序集执行恶意代码(例如,关闭我的程序,删除文件)?

你们其中一个人遇到过其他陷阱吗?

您是否考虑过使用MS的Add-Ins和Extensiblity框架? http://msdn.microsoft.com/en-us/magazine/cc163476.aspx

迈克尔

一种技术是将其他程序集加载到单独的AppDomain中。 卸载AppDomain将卸载程序集。

您无法卸载单个程序集。 您只能通过卸载它们所属的AppDomain来卸载一组程序集。

这实质上就是SQL CLR的工作原理,以及ASP.NET – 通过为用户提供的程序集提供临时AppDomain。