@Rookian Похоже также на тестируемое решение и полностью избегает DI. Это может быть не так гибко, как нужно. С DI ваш IoC-контейнер может предоставлять разные реализации для разных классов (при необходимости); где, используя статический маршрут, вы в значительной степени привязаны к одной реализации конфигурации. Не может быть проблемой в вашей ситуации, просто подумал, что упомяну это.

ожно сохранить весь код файла конфигурации из моего логического кода, используя Настройки (ApplicationSettingsBase) и Внедрение зависимостей?

Под конфигурацией я имею в виду специфический для клиента файл конфигурации.

Мне действительно нужно вводить класс конфигурации каждый раз, когда мне это нужно, или есть другой шаблон?

Было бы здорово получить пример кода!

Образцы:

Статическая конфигурация:

public static class StaticConfiguration
{
    public static bool ShouldApplySpecialLogic { get; set; }
    public static string SupportedFileMask { get; set; }
}

public class ConsumerOfStaticConfiguration
{
    public void Process()
    {
        if (StaticConfiguration.ShouldApplySpecialLogic)
        {
            var strings = StaticConfiguration.SupportedFileMask.Split(',');
            foreach (var @string in strings)
            {

            }
        }
    }
}

Нестатическая конфигурация:

public interface IConfiguration
{
    bool ShouldApplySpecialLogic { get; set; }
    string SupportedFileMask { get; set; }
}

public class Configuration : IConfiguration
{
    public bool ShouldApplySpecialLogic { get; set; }
    public string SupportedFileMask { get; set; }
}

public class Consumer
{
    private readonly IConfiguration _configuration;

    public Consumer(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void Process()
   , {
        if (_configuration.ShouldApplySpecialLogic)
        {
            var strings = _configuration.SupportedFileMask.Split(',');
            foreach (var @string in strings)
            {

            }
        }
    }
}

Статический контекст с нестатической конфигурацией:

public static class Context
{
    public static IConfiguration Configuration { get; set; }
}

public class ConsumerOfStaticContext
{
    public void Process()
    {
        if (Context.Configuration.ShouldApplySpecialLogic)
        {
            var strings = Context.Configuration.SupportedFileMask.Split(',');
            foreach (var @string in strings)
            {

            }
        }
    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос