c# - 将 Prism 与 Ninject 结合使用

标签 c# .net prism ioc-container ninject

有没有人在使用 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/

相关文章:

c# - 使用 C# 反序列化带有命名空间的 XML 片段

c# - 启动后在 C# 中重新加载环境变量

c# - 如何在不手动设置的情况下将绑定(bind)属性作为参数传递

c# - 如何使用 Moq 测试没有返回值的方法?

c# - 在 .NET Core 2.0 中接受 API 的多个参数

c# - 如何在 Linux/MacOS 上正确发送 MultipartContent?

c# - 查找不在数据表中但存在于 List<customclass> 中的项目

c# - 在数据库中克隆相当大的子树的高效方法?

c# - 如何在 Prism 应用程序中管理多个 TabControlItem 的内容?

wpf - 当 View 模型在构造函数中有参数时,如何将 View 模型连接到 View ?