public static IConfiguration SetValue <T>([NotNull] this IConfiguration config, [NotNull] Expression <Func <T> > expression, [CanBeNull] T value, [CanBeNull] string instance = null) { if (config == null) { throw new ArgumentNullException(nameof(config)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } var settingInfo = SettingMetadata.FromExpression(expression, false); var query = ValueQueryFactory.CreateSetValueQuery(settingInfo, value, instance); //var settingValue = config.GetValue(settingInfo.SettingName, typeof(T), settingInfo.ProviderName) ?? settingInfo.DefaultValue; //var settingValue = //settingInfo.GetValue(); settingInfo .Validations .Validate(query.SettingName, value); config.SetValue(query); return(config); }
private static T GetValue <T>([NotNull] this IConfiguration config, [NotNull] LambdaExpression expression, [CanBeNull] string instanceName = null) { if (config == null) { throw new ArgumentNullException(nameof(config)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } var settingMetadata = SettingMetadata.FromExpression(expression, false); var query = ValueQueryFactory.CreateGetValueQuery(settingMetadata, instanceName); var settingValue = config.GetValue(query) ?? settingMetadata.DefaultValue; settingMetadata .Validations .Validate(query.SettingName, settingValue); return((T)settingValue); }