#if !NET472 using System.Runtime.Versioning; #endif namespace RhSolutions.Tools; #if !NET472 [SupportedOSPlatform("windows")] #endif internal abstract class Tool : IDisposable { protected readonly IExcelReader _reader; protected readonly WriterFactory _writerFactory; protected IExcelWriter _writer; public Tool(IServiceProvider provider) { _reader = provider.GetRequiredService(); _writerFactory = provider.GetRequiredService(); } public void Dispose() { _reader.Dispose(); _writer.Dispose(); } public abstract void Execute(); }