我目前正在开发一个基于C#的应用程序,它加载了许多不同的模块(硬件组件的.net驱动程序等)。该应用程序应该提供某种插件/添加管理器来选择专用模块(仅限于一组专用设备、过滤器、组件)。鉴于微软提供了一个成熟的MEF框架,我认为尝试使用它是个好主意。
当前我面临的主要问题是,通过
尽管如此,当用户稍后决定仅挑选其中几个时,我想避免将所有程序集加载到进程中。
所以我尝试找到一种方法,在不保留程序集在进程中的情况下获取插件元数据。我发现
当前我面临的主要问题是,通过
DirectoryCatalog
扫描附加组件的文件夹后,所有程序集都被加载到进程中(因为我使用“lazy”机制,当前没有任何实例化)。尽管如此,当用户稍后决定仅挑选其中几个时,我想避免将所有程序集加载到进程中。
所以我尝试找到一种方法,在不保留程序集在进程中的情况下获取插件元数据。我发现
Mono.Addins
框架似乎支持这样的XML基于清单的方案 - 但我不确定是否可以使用MEF做到类似的事情?