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