我为我的应用程序使用prism / mvvm / mef,加载标有ViewExport(Region)的所有视图都可以很好地工作(我正在使用StockTraderRI AutoPopulateExportedViewsBehaviour)。
现在,我想使用此运行时查找功能来初始化其他一些后台类。
说我有一个界面
public interface ITable
{
}
我从这个界面得到了很多类。
有没有办法以某种方式标记这些派生类,并让MEF在运行时创建它们并将它们添加到某种列表或容器中?
喜欢进入一个没有出现在任何地方的地区,我期待?我如何在MEF中实现这一目标?
答案 0 :(得分:3)
当然有! 使用Export属性标记继承您的接口的类,并在另一个类中创建一个属性,例如具有属性[ImportMany]的泛型类型ObservableCollection。应该这样做。
答案 1 :(得分:1)
如果您使用MEF而不是Unity,您也可以在引导程序中使用Container调用:
var tables = Container.GetExportedValues<ITable>();
Container是MEFBootstrapper的公共属性。