【问题标题】:Create a Factory with MEF使用 MEF 创建工厂
【发布时间】:2012-10-05 01:10:34
【问题描述】:

我基本上有一个类,它有一个工厂方法,它接受我们拥有的一种 Product 并返回一个专门能够处理该产品的 IProfileService 的实现。如果我想使用 MEF,以便我可以在另一个 DLL 中实现 IProfileService 的不同实现,而该 DLL 只有在安装该特定产品时才会安装,什么是好的方法?

我的第一个想法是使用 MetaData 的 ImportMany 来描述它处理的产品,然后在我的工厂方法中使用 LINQ 查询将传入的产品与 MetaData 进行比较。这听起来不错还是有更好的方法?

【问题讨论】:

    标签: c# .net mef


    【解决方案1】:

    我认为这种方法会很好用。我想不出其他更好的方法。

    可以与这种方法一起使用的技术是延迟加载。请参阅 MEF 上的 this great article。通过在导出中使用 Lazy<T>,您的 IProfileService 对象将在您需要它们之前创建。

    【讨论】:

    • 也感谢您的那篇文章,这是我读过的最好的 MEF 文章之一。
    猜你喜欢
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多