代码之家  ›  专栏  ›  技术社区  ›  stiank81

使用带有ninject的棱镜

  •  8
  • stiank81  · 技术社区  · 15 年前

    有人在外面用 Prism framework 用忍者代替团结?我需要一些unity还不支持的功能,我决定将ioc容器切换到ninject。不过,我有点想找个替代品。

    我需要使用prism中的eventaggregator和regionmanager。我见过 this sample 实际上是这样做的,但是这是为一个旧版本的prism编写的,并且有几个类似乎已经改变了等等。所以在试图重写它之后,我看起来很困惑。

    我的问题是: 我怎样才能用Ninject代替Unity?

    必要的步骤是什么?最初,我假设我可以编写一个简单的引导程序,创建并配置一个ninject容器,并使用它解析所有其他对象。我将i eventaggregator绑定到eventaggregator,将i regionmanager绑定到regionmanager,但在创建shell时失败,并调用regionmanager.createRegion。问题是,似乎我需要在某个地方设置一个ServiceLocator,因为它在这条线上失败了:

    IServiceLocator locator = ServiceLocator.Current;
    

    一路上有什么想法和建议吗?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Tod    12 年前

    何迈可 implemented the necessary bits 对于棱镜中的9个项目”

    您只需要实现自己的“ninjectbootstrapper”和使用ninject的iservicelocator实现。链接中的代码为您完成所有这些任务。

        2
  •  5
  •   Cody Gray    14 年前

    我刚刚创建了一个GitHub项目,它使用了Ninject2.0和Prism4.0,应该可以满足任何想要用Unity或Mef替换Ninject的人的需要

    网站在这里: Prism Ninject Extension