public void Configure()
        {
            var collecionDeServicios = new ColeccionDeServicios();

            ConfigureServices(collecionDeServicios);

            var provedorDeServicios = collecionDeServicios.EnsamblarProveedorDeServicios();

            // El tipo de cosa a resolver
            var cosaAResolver = typeof(FieldQueryHandler);

            // Dame El constructor
            var constructor = cosaAResolver.GetConstructors().Single();

            // Dame los parametros del constructor
            var parameters = constructor.GetParameters();

            //resolver los parameteros del constructor
            var resolvedParameter = parameters.Select(a => provedorDeServicios.GetService(a.ParameterType));

            // Instanciar
            var fieldQueryHandler = (FieldQueryHandler)constructor.Invoke(resolvedParameter.ToArray());

            // Resultado de la operacion
            var result = fieldQueryHandler.Handle(new GetUserFieldsQuery(Guid.NewGuid())).GetAwaiter().GetResult();
        }
        public void ConfigureServices(ColeccionDeServicios tito)
        {
            tito.AddService <ILogger <WeatherService> >(a => new Logger());

            tito.AddService(Logger);

            tito.AddService <WeatherService>(a => new WeatherService(a.GetService <InfrastructureLogger <WeatherService> >()));
        }