有没有人在使用 Prism framework使用 Ninject 而不是 Unity?我需要一些 Unity 尚不支持的功能,因此我决定将 IoC 容器切换到 Ninject。不过,我在替换方面有点吃力。
我需要从 Prism 使用 EventAggregator 和 RegionManager。我看过this sample实际上进行了替换,但这是为旧版本的 Prism 编写的,并且一些类似乎已经更改等。因此,在尝试重写它后,我做了一些努力,最终感到很困惑。
所以 - 我的问题基本上是:如何用 Ninject 替换 Unity?
有哪些必要步骤?最初我假设我可以编写一个简单的 Bootstrap 来创建和配置 Ninject 容器并使用它来解析所有其他对象。我将 IEventAggregator 绑定(bind)到 EventAggregator 并将 IRegionManager 绑定(bind)到 RegionManager,但在创建 Shell 时失败并调用了 RegionManager.CreateRegion。问题是我似乎需要在某处设置 ServiceLocator,因为它在此行失败:
IServiceLocator locator = ServiceLocator.Current;
一路上有什么想法和提示吗?
最佳答案
我刚刚创建了一个使用 Ninject 2.0 和 Prism 4.0 的 github 项目,它应该可以满足任何想要将 unity 或 MEF 换成 Ninject 的人的需求
网站在这里:Prism Ninject Extension
关于c# - 将 Prism 与 Ninject 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621248/