设置管理模块

    ISettingManager 用于获取和设定设置值. 示例:

    你可以从不同的设置值提供程序中(默认,全局,用户,租户…等)中获取或设定设置值.

    设置值缓存在 分布式缓存 系统中. 建议始终使用 ISettingManager 更改设置值.

    设置管理模块是可扩展的,像一样. 你可以通过自定义设置管理提供程序进行扩展. 有5个预构建的设置管理程序程序按以下顺序注册:

    • DefaultValueSettingManagementProvider: 从设置定义的默认值中获取值,由于默认值是硬编码在设置定义上的,所以无法更改默认值.
    • ConfigurationSettingManagementProvider:从 IConfiguration 服务中获取值. 由于无法在运行时更改配置值,所以无法更改配置值.
    • GlobalSettingManagementProvider: 获取或设定设置的全局 (系统范围)值.
    • TenantSettingManagementProvider: 获取或设定租户的设置值.
    • UserSettingManagementProvider: 获取或设定用户的设置值.

    ISettingManagerget/set 方法中使用设置管理提供程序. 通常每个设置程序提供程序都在 ISettingManagement 服务上定义了模块方法 (比如用户设置管理程序提供定义了 SetForUserAsync 方法).

    设置管理模块默认提供了邮件设置页面并且它是可扩展的; 你可以为你的应用程序设置添加设置标签到设置页面.

    创建视图组件

    Components 目录下创建 MySettingGroup 文件夹, 添加一个名为 MySettingGroupViewComponent 的视图组件:

    1. public class MySettingGroupViewComponent : AbpViewComponent
    2. public virtual IViewComponentResult Invoke()
    3. {
    4. return View("~/Components/MySettingGroup/Default.cshtml");
    5. }

    Default.cshtml

    MySettingGroup 目录下创建 Default.cshtml 文件.

    打开 Default.cshtml 替换为以下内容:

    1. <div>
    2. <p>My setting group page</p>
    3. </div>

    BookStoreSettingPageContributor

    Settings 目录下创建 BookStoreSettingPageContributor.cs 文件.

    文件内容如下:

    打开 BookStoreWebModule.cs 文件添加以下代码:

    1. Configure<SettingManagementPageOptions>(options =>
    2. {
    3. options.Contributors.Add(new BookStoreSettingPageContributor());

    运行应用程序

    导航到 /SettingManagement 路由查看更改:

    创建 Razor 组件

    Pages 目录下创建 MySettingGroup 文件夹, 添加一个名为 MySettingGroupComponent 的Razor组件:

    打开 MySettingGroupComponent.razor 替换为以下内容:

    1. <Row>
    2. <p>my setting group</p>
    3. </Row>

    BookStoreSettingComponentContributor

    Settings 目录下创建 BookStoreSettingComponentContributor.cs 文件.

    BookStoreSettingComponentContributor

    文件内容如下:

    打开 BookStoreBlazorModule.cs 文件添加以下代码:

    1. Configure<SettingManagementComponentOptions>(options =>
    2. {
    3. options.Contributors.Add(new BookStoreSettingComponentContributor());

    运行应用程序

    导航到 /setting-management 路由查看更改:

    不同的模块提供它们的设置选项卡. 你可以通过3个步骤在项目中自定义设置页面.

    创建组件

    使用以下命令创建一个组件

    1. yarn ng generate component my-settings

    打开 app.component.ts 做以下修改:

    运行应用程序