public static IServiceCollection AddResourceFactories(this IServiceCollection services, Action <CompositeResourceFactoryBuilder> build)
        {
            var builder = new CompositeResourceFactoryBuilder();

            build(builder);
            return(services
                   .AddSingleton(builder)
                   .AddResourceFactory <CompositeResourceFactory>());
        }
Exemplo n.º 2
0
 public CompositeResourceFactory(IServiceProvider serviceProvider, CompositeResourceFactoryBuilder builder)
 {
     if (serviceProvider is null)
     {
         throw new ArgumentNullException(nameof(serviceProvider));
     }
     if (builder is null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     Factories = builder.Factories
                 .Select(type => (IResourceFactory)ActivatorUtilities.CreateInstance(serviceProvider, type))
                 .ToArray();
 }