设置管理模块
ISettingManager
用于获取和设定设置值. 示例:
你可以从不同的设置值提供程序中(默认,全局,用户,租户…等)中获取或设定设置值.
设置值缓存在 分布式缓存 系统中. 建议始终使用 ISettingManager
更改设置值.
设置管理模块是可扩展的,像一样. 你可以通过自定义设置管理提供程序进行扩展. 有5个预构建的设置管理程序程序按以下顺序注册:
DefaultValueSettingManagementProvider
: 从设置定义的默认值中获取值,由于默认值是硬编码在设置定义上的,所以无法更改默认值.ConfigurationSettingManagementProvider
:从 IConfiguration 服务中获取值. 由于无法在运行时更改配置值,所以无法更改配置值.GlobalSettingManagementProvider
: 获取或设定设置的全局 (系统范围)值.TenantSettingManagementProvider
: 获取或设定租户的设置值.UserSettingManagementProvider
: 获取或设定用户的设置值.
ISettingManager
在 get/set
方法中使用设置管理提供程序. 通常每个设置程序提供程序都在 ISettingManagement
服务上定义了模块方法 (比如用户设置管理程序提供定义了 SetForUserAsync
方法).
设置管理模块默认提供了邮件设置页面并且它是可扩展的; 你可以为你的应用程序设置添加设置标签到设置页面.
创建视图组件
在 Components
目录下创建 MySettingGroup
文件夹, 添加一个名为 MySettingGroupViewComponent
的视图组件:
public class MySettingGroupViewComponent : AbpViewComponent
public virtual IViewComponentResult Invoke()
{
return View("~/Components/MySettingGroup/Default.cshtml");
}
Default.cshtml
在 MySettingGroup
目录下创建 Default.cshtml
文件.
打开 Default.cshtml
替换为以下内容:
<div>
<p>My setting group page</p>
</div>
BookStoreSettingPageContributor
在 Settings
目录下创建 BookStoreSettingPageContributor.cs
文件.
文件内容如下:
打开 BookStoreWebModule.cs
文件添加以下代码:
Configure<SettingManagementPageOptions>(options =>
{
options.Contributors.Add(new BookStoreSettingPageContributor());
运行应用程序
导航到 /SettingManagement
路由查看更改:
创建 Razor 组件
在 Pages
目录下创建 MySettingGroup
文件夹, 添加一个名为 MySettingGroupComponent
的Razor组件:
打开 MySettingGroupComponent.razor
替换为以下内容:
<Row>
<p>my setting group</p>
</Row>
BookStoreSettingComponentContributor
在 Settings
目录下创建 BookStoreSettingComponentContributor.cs
文件.
文件内容如下:
打开 BookStoreBlazorModule.cs
文件添加以下代码:
Configure<SettingManagementComponentOptions>(options =>
{
options.Contributors.Add(new BookStoreSettingComponentContributor());
运行应用程序
导航到 /setting-management
路由查看更改:
不同的模块提供它们的设置选项卡. 你可以通过3个步骤在项目中自定义设置页面.
创建组件
使用以下命令创建一个组件
yarn ng generate component my-settings
打开 app.component.ts
做以下修改: