Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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#_Ninject_Portable Areas - Fatal编程技术网

C# 使用ninject注入其他程序集中的类

C# 使用ninject注入其他程序集中的类,c#,ninject,portable-areas,C#,Ninject,Portable Areas,我的项目是使用可移植区域完成的,我使用ninject for DI,我正在注入其他程序集中的类,所以我在AreaRegistration中有以下代码: DependencyResolver.Current.GetService<IModuleManager>().Add(this.module); IKernel kernel = DependencyResolver.Current.GetService<IKernel>(); kernel.Bind<IC

我的项目是使用可移植区域完成的,我使用ninject for DI,我正在注入其他程序集中的类,所以我在AreaRegistration中有以下代码:

DependencyResolver.Current.GetService<IModuleManager>().Add(this.module);  
IKernel kernel = DependencyResolver.Current.GetService<IKernel>();  
kernel.Bind<IConfigurationRepository>().To<ConfigurationRepository>();  
但由于某种原因,configurationRepository为空

但如果我说:

public RequestController()
{
   this.configurationRepository = ((StandardKernel)DependencyResolver.Current.GetService<IKernel>()).GetAll<IConfigurationRepository>().First();
}
公共请求控制器() { this.configurationRepository=((StandardKernel)DependencyResolver.Current.GetService()).GetAll().First(); } 它很好用。他们之间有什么不同


任何线索都将不胜感激。

如果注册了多个
IConfigurationRepository
,则第二个实现将起作用,但在这种情况下,第一个实现将失败


第一种情况有什么例外?如果在第二种情况下使用
Single
而不是
First
,会发生什么情况?

它到底是如何工作的?它会给你两周的通知吗?我更新了我的问题。问题是configurationRepository为null在第一种情况下configurationRepository为null。如果我使用single,如果我在第二个中使用single而不是First,那么给它一个例外:Sequence包含多个元素。这就是问题所在。Ninject不允许有多个绑定,因为选择哪个绑定是不明确的。
public RequestController()
{
   this.configurationRepository = ((StandardKernel)DependencyResolver.Current.GetService<IKernel>()).GetAll<IConfigurationRepository>().First();
}