【发布时间】:2010-09-30 08:00:18
【问题描述】:
我想我得到了 MEF 模型。但我很难确定它是否适合我正在尝试做的事情。
我有一个应用程序,它会调用第三方插件来进行一些视频处理。插件可以是FFMPEG.exe或者x264.exe,没关系。调用插件的过程是通过 ProcessStartInfo(基本上是通过命令行)并传递一堆参数。例如
ffmpeg.exe -in "c:\vid.avi" -out "c:\vid.avi" -Xheight 100 -Xwidth 100
or
x264.exe -in "c:\vid.avi" -out "c:\vid.avi" -Yheight 100 -Ywidth 100
假设每个插件都有自己的参数集,那么使用 MEF 是否合适,所以无论使用哪个插件,接口都是相同的(通过公共合同进行 alebit)?如果是这样,我必须为每个实现合同的插件编写一个包装类吗?
这是使用 MEF 的正确方法吗?一方面,我试图通过允许客户选择他们的插件来使我的应用程序可扩展。但我真的不确定 MEF 是否是矫枉过正,而简单地使用配置文件来存储命令是一种更好的方法?
【问题讨论】:
标签: c# design-patterns plugins mef