예제 #1
0
        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();
        }
예제 #2
0
        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();
        }