AppSwitch - оно нам надо?
От: Sinix  
Дата: 14.04.16 08:03
Оценка:
Пример использования:

SomeAssembly.dll:
    internal static class AssemblyWideConfig
    {
        public static readonly bool AnnotateOnRun = AppSwitch.GetForAssembly(() => AnnotateOnRun);
        public static readonly ConsoleColor ErrorColor = AppSwitch.GetForAssembly(() => ConsoleColor, defaultValue: ConsoleColor.Green);
    }


SomeAssembly.config:
<configuration>
    <appSettings>
        <add key="AssemblyWideConfig.AnnotateOnRun" value="true" />
        <add key="AssemblyWideConfig.ErrorColor" value="DarkRed" />
    </appSettings>
</configuration>


В чём отличия от того же FeatureToggle:
0. Простейшее API, типы свитчей — только bool и enum.
1. AppSwitch предлагается навешивать индивидуально на каждую библиотеку, не пихать в общий appconfig. Если нужны значения из appconfig — можно будет добавить AppSwitch.GetForApp() (имя условное).
2. JIT отлично оптимизирует
Автор: Sinix
Дата: 27.03.16
работу с static readonly полями. В прочих фреймворках конечно можно запихнуть значения в поля вручную, но это уже лишняя работа


В чём недостаток: под .net core и winrt придётся изобрести свои костыли, или с чтением app.config вручную, или перенаправлять на стандартные Option/ApplicationData.Current.LocalSetting.

Собственно вопрос: оно нам надо?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.