• Setting Management: 用于持久化设置Setting值


    一、定义SettingManagementOptions,多个设置值提供者,(与Volo.Abp.Settings模块ISettingValueProvider区别??

     public override void ConfigureServices(ServiceConfigurationContext context)
            {
                Configure<SettingManagementOptions>(options =>
                {
                    options.Providers.Add<DefaultValueSettingManagementProvider>();
                    options.Providers.Add<GlobalSettingManagementProvider>();
                    options.Providers.Add<TenantSettingManagementProvider>();
                    options.Providers.Add<UserSettingManagementProvider>();
                });
            }
    

      

    1、实体  Setting : Entity<Guid>, IAggregateRoot<Guid>

     名称、值、提供名称(比如默认,全部,租户,用户),ProviderKey(可以租户Id,用户Id等)

    2、服务

    1、SettingStore,依赖ISettingManagementStore,获取设置值

    2、ISettingManagementStore获取,设置,删除设置值,     依赖仓储ISettingRepository,分布式缓存IDistributedCache<SettingCacheItem>

    3、ISettingManager,关联IOptions<SettingManagementOptions> options, IServiceProvider serviceProvider, ISettingDefinitionManager settingDefinitionManager,

    ISettingEncryptionService settingEncryptionService,遍历List<ISettingManagementProvider>得到

    3、UI层

    1、配置导航菜单

        Configure<NavigationOptions>(options =>
                {
                    options.MenuContributors.Add(new SettingManagementMainMenuContributor());
                });
    

     2、配置虚拟文件

       Configure<VirtualFileSystemOptions>(options =>
                {
                    options.FileSets.AddEmbedded<AbpSettingManagementWebModule>("Volo.Abp.SettingManagement.Web");
                });
    

      3、配置本地化

      Configure<AbpLocalizationOptions>(options =>
                {
                    options.Resources
                        .Add<AbpSettingManagementResource>("en");
                });
    
                Configure<AbpLocalizationOptions>(options =>
                {
                    options.Resources
                        .Get<AbpSettingManagementResource>()
                        .AddVirtualJson("/Localization/Resources/AbpSettingManagement");
                });
    

      菜单路径:/SettingManagement,Abp的UI模块暂没有完善好

    三、测试

    同一配置名,可根据默认(从settingDefinitionContext里的SettingDefinition设置),全局,不同用户,租户可获取不同的值

  • 相关阅读:
    c# 调用C++动态库 问题
    Web应用简易框架。
    【转】SVN历史版本删除(为SVN库瘦身)
    程序员7武器序
    小系统单据自动生成存储过程
    【转】数据库和数据仓库的区别
    jQuery之extend 函数
    .NET单元测试断言(Assert)
    c#类型转换操作符:as和is
    oracle 表数据合并
  • 原文地址:https://www.cnblogs.com/cloudsu/p/11161971.html
Copyright © 2020-2023  润新知