Setting Management Module implements the `ISettingStore` (see [the setting system](Settings.md)) to store the setting values in a database and provides the `ISettingManager` to manage (change) the setting values in the database.
//Get a bool value and fallback to the default value (false) if not set.
@ -81,6 +83,23 @@ public class MyService
> `ISettingProvider` is a very common service and some base classes (like `IApplicationService`) already property-inject it. You can directly use the `SettingProvider` in such cases.
### Reading Setting Values on the Client Side
If a setting is allowed to be visible on the client side, current value of the setting can also be read from the JavaScript code. Examples:
````js
//Gets a value as string.
var language = abp.setting.get('Abp.Localization.DefaultLanguage');
//Gets an integer value.
var requiredLength = abp.setting.getInt('Abp.Identity.Password.RequiredLength');
//Gets a boolean value.
var requireDigit = abp.setting.getBoolean('Abp.Identity.Password.RequireDigit');
````
In addition, use `abp.setting.values` to get a dictionary of all the setting values.
## Setting Value Providers
Setting system is extensible, you can extend it by defining setting value providers to get setting values from any source and based on any condition.