示例#1
0
 public static T ReadWithDefault <T>(this TomlConfigSettings settings, T defaultInstance)
 {
     using (settings)
     {
         var reader = new TomlConfigReader(settings);
         return((T)reader
                .ReadWithDefault(settings.Data.Stream, defaultInstance)
                .WithOverrides <T>(settings.Overrides));
     }
 }
示例#2
0
 public static T Read <T>(this TomlConfigSettings settings)
 {
     using (settings)
     {
         var reader = new TomlConfigReader(settings);
         return((T)reader
                .Read <T>(settings.Data.Stream, settings.Data.Path)
                .WithOverrides <T>(settings.Overrides));
     }
 }
示例#3
0
        public static TomlConfigSettings WithOverrideFromEnvironmentVariables(this TomlConfigSettings settings)
        {
            IEnumerable <(string, string)> Enumerate()
            {
                foreach (DictionaryEntry kv in Environment.GetEnvironmentVariables())
                {
                    yield return(kv.Key.ToString(), kv.Value?.ToString());
                }
            }

            settings.WithOverrides(Enumerate().ToDictionary(x => x.Item1, x => x.Item2));
            return(settings);
        }
示例#4
0
 public static TomlConfigSettings WithOverride(this TomlConfigSettings settings,
                                               string propertyName, string value)
 {
     settings.Overrides[propertyName] = value;
     return(settings);
 }
示例#5
0
 public static TomlConfigSettings WithOverrides(this TomlConfigSettings settings,
                                                Dictionary <string, string> overrides)
 {
     settings.Overrides = overrides;
     return(settings);
 }
示例#6
0
 public static TomlConfigSettings WithMasterKey(this TomlConfigSettings settings,
                                                string masterKey)
 {
     settings.CustomTypeConverters.Insert(0, new PasswordTypeConverter(new SecretKeeper(masterKey)));
     return(settings);
 }
示例#7
0
 public static TomlConfigSettings WithCustomTypeConverter(this TomlConfigSettings settings,
                                                          ITypeConverter converter)
 {
     settings.CustomTypeConverters.Add(converter);
     return(settings);
 }
示例#8
0
 public TomlConfigReader(TomlConfigSettings settings)
 {
     this.settings = settings;
 }