示例#1
0
        public PocketContainer AfterResolve <T>(Func <PocketContainer, T, T> then)
        {
            var pipeline = new AfterResolvePipeline <T>(this, GetResolver <T>());

            pipeline.Transforms.Enqueue(then);
            Register(typeof(T), c => pipeline.Resolve());
            return(this);
        }
示例#2
0
        public PocketContainer AfterCreating <T>(Func <T, T> transform)
        {
            TryRegisterSingle(c =>
            {
                var resolvePipeline = new AfterResolvePipeline <T>(this, ExistingResolver <T>());

                Registering += (type, d) => Reregister((dynamic)d);

                return(resolvePipeline);
            });

            var pipeline = Resolve <AfterResolvePipeline <T> >();

            pipeline.Transforms.Enqueue(transform);

            resolvers[typeof(T)] = c => pipeline.Resolve();

            return(this);
        }