需要帮助将PRISM Unity Module Init转换为PRISM MEF模块初始化

时间:2011-09-24 21:54:33

标签: prism unity-container mef devforce

我需要帮助转换以下类,以便在我正在开发的程序中使用。原作是基于IdeaBlade的名为"PRISM EXPLORER"的{​​{1}}演示程序。我需要帮助将一部分从UNITY转换为MEF。我处理了其他一切。只是坚持这一个。我已经用MEF“[EXPORT(typeof(XXX))]”标记了我的课程,我认为我需要以某种方式使用“ComposeExportedValue”。令人困惑的部分是找到这条线的等效物:

Unity

谢谢!

以下是我需要转换的整个类。你可以在这里找到原文:Ideablade PRISM Page

var provider = 
    (IEntityManagerProvider) _container.Resolve<IPersistenceGateway>();
  _container.RegisterInstance<IEntityManagerProvider>(provider);

1 个答案:

答案 0 :(得分:0)

CompositionContainer上的两个相应方法是ComposeExportedValue<T>(...),它允许您向容器添加特定实例,GetExportedValue<T>(...)T获取实例[Export(typeof(IModule))] public class ExplorerModule : IModule { [ImportingConstructor] public ExplorerModule(IPersistenceGateway gateway) { } } 容器。

如果您可以设计类型以减少服务位置的使用并尝试更喜欢构造函数注入,那么它将使您的代码更易于维护和测试。例如,您的代码可以转换为:

{{1}}