Пример #1
0
        /// <summary>
        /// Provides the means to add essential ImageSharp services to the specified <see cref="IServiceCollection" /> with the given options.
        /// All additional services are required to be configured.
        /// </summary>
        /// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
        /// <param name="setupAction">An <see cref="Action{ImageSharpMiddlewareOptions}"/> to configure the provided <see cref="ImageSharpMiddlewareOptions"/>.</param>
        /// <returns>An <see cref="IImageSharpBuilder"/> that can be used to further configure the ImageSharp services.</returns>
        public static IImageSharpBuilder AddImageSharpCore(this IServiceCollection services, Action <ImageSharpMiddlewareOptions> setupAction)
        {
            Guard.NotNull(services, nameof(services));

            services.TryAddTransient <IConfigureOptions <ImageSharpMiddlewareOptions>, ImageSharpConfiguration>();

            IImageSharpBuilder builder = new ImageSharpBuilder(services);

            builder.Services.Configure(setupAction);

            builder.SetMemoryAllocatorFromMiddlewareOptions();
            builder.SetFormatUtilitesFromMiddlewareOptions();

            return(builder);
        }
        /// <summary>
        /// Adds ImageSharp services to the specified <see cref="IServiceCollection" /> with the given options.
        /// </summary>
        /// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
        /// <param name="setupAction">An <see cref="Action{ImageSharpMiddlewareOptions}"/> to configure the provided <see cref="ImageSharpMiddlewareOptions"/>.</param>
        /// <returns>An <see cref="IImageSharpBuilder"/> that can be used to further configure the ImageSharp services.</returns>
        public static IImageSharpBuilder AddImageSharp(
            this IServiceCollection services,
            Action <ImageSharpMiddlewareOptions> setupAction)
        {
            Guard.NotNull(services, nameof(services));
            Guard.NotNull(setupAction, nameof(setupAction));

            services.TryAddTransient <IConfigureOptions <ImageSharpMiddlewareOptions>, ImageSharpConfiguration>();

            IImageSharpBuilder builder = new ImageSharpBuilder(services);

            AddDefaultServices(builder, setupAction);

            return(builder);
        }