public static IServiceCollection AddResourceFactories(this IServiceCollection services, Action <CompositeResourceFactoryBuilder> build) { var builder = new CompositeResourceFactoryBuilder(); build(builder); return(services .AddSingleton(builder) .AddResourceFactory <CompositeResourceFactory>()); }
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(); }