RhSolutions-AddIn/RhSolutions.AddIn/Services/WriterFactory.cs
2023-06-20 08:14:01 +03:00

21 lines
640 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
{
"NewPrice" => (IWriter)_serviceProvider.GetService(typeof(NewPriceWriter)),
"Dxf" => (IWriter)_serviceProvider.GetService(typeof(DxfWriter)),
_ => throw new ArgumentException($"Незвестный интерфейс {nameof(IWriter)}: {writerName}")
};
}
}