У меня есть веб-приложение с двумя разными контроллерами, и я использую файлы конфигурации в качестве входных данных для контроллеров. Раньше я использовал только один файл конфигурации и мог просто привязать его к ядру, и все работало нормально. Однако теперь я буду использовать два отдельных файла конфигурации, и мне понадобится ninject, чтобы понять, какой из них использовать. Вот пример того, как я думал, что я буду делать. Закомментировано также то, что я делал для привязки конфигурации раньше, когда у меня была только одна.
var kernel = NinjectWebApi.Kernel;
//get base dependency instances from the container
var configurationClient = kernel.Get<IConfigurationClient>();
//initialise local dependencies
var config1 = configurationClient.Get(new GetConfigurationByKeyRequest("Config1"));
var config2 = configurationClient.Get(new GetConfigurationByKeyRequest("Config2"));
//bind local dependencies
//This is what I did when I had just one config
//kernel.Bind<IConfiguration>().ToMethod(c => config1.Configuration);
kernel.Bind<IMy1Controller>().To<My1Controller>()
.WithConstructorArgument("config1", config1.Configuration)
.WithConstructorArgument("config2", config2.Configuration);
kernel.Bind<IMy2Controller>().To<My2Controller>()
.WithConstructorArgument("config2", config2.Configuration);
//Set the dependency resolver to use ninject
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
Какова цель «WithConstructorArgument», если я не могу использовать его для указания ввода?