namespace RhSolutions.Services; public class WriterFactory { private readonly IServiceProvider _serviceProvider; public WriterFactory(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } public IWriter GetWriter(string writerName) { return writerName switch { "NewPrice" => (IWriter)_serviceProvider.GetService(typeof(NewPriceWriter)), "Dxf" => (IWriter)_serviceProvider.GetService(typeof(DxfWriter)), _ => throw new ArgumentException($"Незвестный интерфейс {nameof(IWriter)}: {writerName}") }; } }