Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用带Ninject的棱镜_C#_.net_Prism_Ioc Container_Ninject - Fatal编程技术网

C# 使用带Ninject的棱镜

C# 使用带Ninject的棱镜,c#,.net,prism,ioc-container,ninject,C#,.net,Prism,Ioc Container,Ninject,有没有人用with Ninject而不是Unity?我需要一些Unity还不支持的功能,我决定将IoC容器切换到Ninject。不过,我还是有点为替换而挣扎 我需要使用Prism中的EventAggregator和RegionManager。我已经看到它实际上是用来替换的,但是这是为旧版本的Prism编写的,而且有几个类似乎已经改变了等等。因此,我在尝试重写它的过程中做了一些努力之后,最后感到非常困惑 所以-我的问题基本上是:我如何用Ninject替换Unity 必要的步骤是什么?起初,我假设我

有没有人用with Ninject而不是Unity?我需要一些Unity还不支持的功能,我决定将IoC容器切换到Ninject。不过,我还是有点为替换而挣扎

我需要使用Prism中的EventAggregator和RegionManager。我已经看到它实际上是用来替换的,但是这是为旧版本的Prism编写的,而且有几个类似乎已经改变了等等。因此,我在尝试重写它的过程中做了一些努力之后,最后感到非常困惑

所以-我的问题基本上是:我如何用Ninject替换Unity

必要的步骤是什么?起初,我假设我可以编写一个简单的引导程序来创建和配置Ninject容器,并使用它来解析所有其他对象。我将IEventAggregator绑定到EventAggregator,将IRegionManager绑定到RegionManager,但在创建Shell时失败,并调用RegionManager.CreateRegion。问题是,似乎我需要在某个地方设置ServiceLocator,因为它在这一行失败:

IServiceLocator locator = ServiceLocator.Current;
沿途有什么想法和建议吗

迈克尔·哈特为《棱镜中的Ninject》


您只需实现您自己的“Ninject boostrapper”和使用Ninject的IServiceLocator实现。链接中的代码为您完成了所有这些工作。

我刚刚创建了一个github项目,该项目使用Ninject 2.0和Prism 4.0,应该可以满足任何想用unity或MEF交换Ninject的人的需要


网站在这里:

出于好奇,你需要什么Unity没有的功能?@Anderson链接断了:(@dFlat:更好的是,这里是源代码:前面提到的所有链接都没有了。