详解ABP框架中的日志管理和设置管理的基本配置(5)

//Getting a boolean value (async call)
var value1 = await SettingManager.GetSettingValueAsync<bool>("PassiveUsersCanNotLogin");
//Getting a string value (sync call)
var value2 = SettingManager.GetSettingValue("SmtpServerAddress"); 

GetSettingValue 有泛型和异步版本,如上所示。也有方法来获取特定的租户或用户的设置值或所有设置值的列表。

由于ISettingManager使用广泛,一些特定的基类 (如 ApplicationService、 DomainService 和 AbpController) 有一个名为 SettingManager的属性。如果我们从这些类继承,就无需显式地注入它。

(2)客户端
如果定义设置时将 IsVisibleToClients 设置为 true,就可以在客户端使用 javascript得到它的当前值。abp.setting 命名空间定义所需的函数和对象。示例:

var currentColor = abp.setting.get("SiteColorPreference");也有 getInt 和 getBoolean 这样的方法。你可以使用 abp.setting.values 对象获取所有值。请注意,如果你在服务器端更改设置,客户端不会知道这种变化,除非刷新页面或者以某种方式重新加载页面或者通过代码手动更新。

更改设置
ISettingManager 定义了 ChangeSettingForApplicationAsync,ChangeSettingForTenantAsync 和 ChangeSettingForUserAsync 方法(以及同步版本)来更改应用程序,租户和用户分别的设置。

关于缓存
缓存在服务器端设置管理,所以,我们不应直接使用存储库或数据库更新语句改变设置的值。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2331.html