public void BehaviourChains_101() { var chain = new BehaviourChain(); chain.Append(new BehaviourNode(typeof(Nick))); chain.Append(new BehaviourNode(typeof(Emily))); chain.Prepend(new BehaviourNode(typeof(Paul))); // wraps it chain.Prepend(new BehaviourNode(typeof(Gregzilla))); // wraps it var converter = new Converter(); var behaviours = converter.ConvertBehaviourChainToBehaviours(chain); behaviours.Invoke(); }
public void IoC_With_Context() { IoC.Container = new Container(); IoC.Container.Configure(x => { x.For<IRepository>().Use<BlahRepository>(); x.For<ILogger>().Use<BlahLogger>(); x.For<IRequest>().Use(new SillyRequest()); // equivalent to Http scoped }); var chain = new BehaviourChain(); chain.Append(new BehaviourNode(typeof(RequestParser))); chain.Append(new BehaviourNode(typeof(RequiresARepository))); chain.Append(new BehaviourNode(typeof(RequiresALogger))); chain.Append(new BehaviourNode(typeof(OutputRenderer))); var runner = new IoCRunner(); var behaviours = runner.ConvertBehaviourChainsToBehaviours(chain); behaviours.Invoke(); }