我声明了以下绑定
Bind<IDataSource>().To<DataSourceOne>();
Bind<ISettings>().To<DataSourceSettings>
.WhenInjectedInto<DataSourceOne>();
Bind<ISettings>().To<Settings>();
现在我打电话
Kernel.Get<IDataSourc>();
Ninject 正确注入了 DataSourceSettings,但我需要根据配置文件中的数据将构造函数参数传递给 Settings 和 DataSourceSettings。所以我改变了 IDataSouce 绑定如下
Kernel.Bind<IDataSource>().To<DataSourceOne>()
.WithConstructorArgument("settings", Kernel.Get<ISettings>(
new ConstructorArgument("data", objectContainingConfigFileData)
)
);
在这种情况下,Ninject 注入 Settings 类而不是 DataSourceSettings 类。我认为问题是 ISettings 在注入 DataSourceSettings 类之前得到解决,因此 Ninject 不使用我想要的绑定。有没有办法解决这个问题。我还没有找到任何东西。