private Func <ServiceResolver, object> ResolveCallback(ServiceDefinition service)
        {
            var callSite = ResolveInternal(service);

            if (!service.RequiredResolveCallback())
            {
                return(callSite);
            }

            return(resolver =>
            {
                var instance = callSite(resolver);
                var callbacks = resolver.ServiceResolveCallbacks;
                for (var i = 0; i < callbacks.Length; i++)
                {
                    instance = callbacks[i].Invoke(resolver, instance, service);
                }
                return instance;
            });
        }