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); }
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); }