Hey all - I'm trying to determine how to make Windsor resolve a specific implementation based on run-time state. Nothing in the core API is jumping out at me and I'm not sure which of the many extensibility points I should pursue.
Does anyone have any advice on how to make these three tests pass? [TestFixture] public class Fixture { [RowTest] [Row(typeof(OneProcessor), Mode.One)] [Row(typeof(TwoProcessor), Mode.Two)] [Row(typeof(ThreeProcessor), Mode.Three)] public void Can_Resolve_Processor_By_Mode(Type type, Mode mode) { IWindsorContainer factory = new WindsorContainer(); factory.AddComponent<IProcessor, OneProcessor>("1"); factory.AddComponent<IProcessor, TwoProcessor>("2"); factory.AddComponent<IProcessor, ThreeProcessor>("3"); factory.AddComponent<Controller>("controller"); IDictionary dictionary = new Dictionary<string, object> {{"mode", mode}}; Controller controller = factory.Resolve<Controller> (dictionary); Assert.IsInstanceOfType(type, controller.Processor, "The processor didn't resolve to the expected type"); Assert.AreEqual(mode, controller.Mode, "The mode was not injected into the controller as expected"); } public enum Mode { One, Two, Three } public class Controller { private readonly IProcessor _processor; private readonly Mode _mode; public Controller(Mode mode, IProcessor processor) { _mode = mode; _processor = processor; } public IProcessor Processor { get { return _processor; } } public Mode Mode { get { return _mode; } } } public interface IProcessor { } public class OneProcessor : IProcessor {} public class TwoProcessor : IProcessor {} public class ThreeProcessor : IProcessor { } } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to castle-project-users@googlegroups.com To unsubscribe from this group, send email to castle-project-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---