KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am implementing the builder design pattern to construct different kinds of graph objects to be displayed on a WPF UI. I am using Ninject as my IOC container. However, I am trying to find an elegant extendable solution. I have a ChartDirector object that takes a IChartBuilder as a dependency. I also have TemperatureChartBuilder and ThresholdChartBuilder that implement IChartBuilder . I want to inject either TemperatureChartBuilder OR ThresholdChartBuilder to ChartDirector depending on an event that is fired or depending on a client call. I have illustrated my problem below in code. // ChartDirector also depends on this kernel.Bind<IExample>().To<Example>(); // when called in Method X... kernel.Bind<IChartBuilder>().To<TemperatureChartBuilder>(); // when called in Method Y... kernel.Bind<IChartBuilder>().To<ThresholdChartBuilder(); // TemperatureChartBuilder is a dependency of ChartDirector, need a way to dynamically // allocate which binding to use. var director = kernel.Get<ChartDirector>(); // without Ninject I would do var director = new ChartDirector(new TemperatureChartBuilder); // or var director = new ChartDirector(new ThresholdChartBuilder); EDIT: Coupled with Gary's answer, and noting a slight edit that ChartDirector has another dependency, I now want to do something like this: var director = kernel.Get<ChartDirector>().WithConstructorArgument(kernel.Get<IChartBuilder>("TemperatureChart")); Is something like this possible?
Tags (comma-separated)
Save Edits
Cancel