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.
//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.
> `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 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.
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.