2012-06-15 2 views
2
ninjectKernel.Bind<IReleaseDataProvider>().To<ReleaseDataProvider>().WithConstructorArgument("connectionString", _connectionString);  

ninjectKernel.Bind<IReleaseService>().To<ReleaseService>().WithConstructorArgument("releaseDataProvider", releaseDataProvider); 

Как я могу получить экземпляр releaseDataProvider, который должен быть передан в конструкторе класса releaseService?Получить конкретный пример ninject

+1

Если зарегистрировать только один 'IReleaseDataProvider' и в' ReleaseService' конструкторе есть 'IReleaseDataProvider' то вызов 'ninjectKernel.Bind (). В ();' будет точно делать то, что вы хотите. Нет необходимости в дополнительной конфигурации. – nemesv

+0

Вы видели мой экземпляр connectionString? Как это должно работать с вашим советом? – Pascal

+0

ах мой провал. Я снова перечитаю комментарий, и теперь понимаю. Да, это цель инструмента di. автоматически разрешить зависимости. – Elisabeth

ответ

3
ninjectKernel.Bind<IReleaseDataProvider>().To<ReleaseDataProvider>().WithConstructorArgument("connectionString", _connectionString); 

ninjectKernel.Bind<IReleaseService>().To<ReleaseService>(); 

Не нужно передавать/получать релизDataProvider вручную.

Когда экземпляр ReleaseService создается своим экземпляром параметра конструктора (ReleaseDataProvider) и эта зависимость (ConnectionString) будет решен

Смежные вопросы