我基本上有一个类,它有一个工厂方法,它接受我们拥有的一种 Product 并返回一个专门能够处理该产品的 IProfileService 的实现。如果我想使用 MEF,以便我可以在另一个 DLL 中实现 IProfileService 的不同实现,只有在安装该特定产品时才会安装,什么是一个好方法?
我的第一个想法是使用 MetaData 的 ImportMany 来描述它处理的产品,然后在我的工厂方法中使用 LINQ 查询将传入的产品与 MetaData 进行比较。这听起来不错还是有更好的方法?