using System.Threading.Tasks; namespace SharedLibraryCore.Interfaces { /// /// defines the capabilities of the configuration handler factory /// used to generate new instance of configuration handlers /// public interface IConfigurationHandlerFactory { /// /// generates a new configuration handler /// /// base configuration type /// file name of configuration /// new configuration handler instance IConfigurationHandler GetConfigurationHandler(string name) where T : IBaseConfiguration; /// /// generates a new configuration handler and builds the configuration automatically /// /// base configuration type /// file name of configuration /// new configuration handler instance Task> GetConfigurationHandlerAsync(string name) where T : IBaseConfiguration; } }