首页 > 其他分享 >ABP-配置设置

ABP-配置设置

时间:2023-07-19 18:22:24浏览次数:29  
标签:Student 配置 ABP 设置 type public 属性

配置设置

ABP遵循的是约定大于配置,作为约定的内容需要在应用程序中进行设置。

定义设置

在设置之前需要先定义他,由于ABP是模块化的,不同模块都可以拥有自己独立的设置参数,只需要在类中派生SettingDefinitionProvider

// ABP会自动发现并和注册设置的定义
public class StudentSettingProvider:SettingDefinitionProvider{
	public override void Define(ISettingDefinitionContext context){
		context.Add(
			// key和value
			new SettingDefinition("Student.Type", "Bus");
			// 只声明一个key
			new SettingDefinition("Student.Attribute");
		);
	}
}

SettingDefinition

SettingDefinition类有如下属性:

  • Name: 应用程序中设置的唯一名称. 是具有约束的唯一属性, 在应用程序获取/设置此设置的值 (设置名称定义为常量而不是magic字符串是个好主意).
  • DefaultValue: 设置的默认值.
  • DisplayName: 本地化的字符串,用于在UI上显示名称.
  • Description: 本地化的字符串,用于在UI上显示描述.
  • IsVisibleToClients: 布尔值,表示此设置是否在客户端可用. 默认为false,避免意外暴漏内部关键设置.
  • IsInherited: 布尔值,此设置值是否从其他提供程序继承. 如果没有为请求的提供程序设置设定值,那么默认值是true并回退到下一个提供程序 (参阅设置值提供程序部分了解更多).
  • IsEncrypted: 布尔值,表示是否在保存值是加密,读取时解密. 在数据库中存储加密的值.
  • Providers: 限制可用于特定的设置值提供程序(参阅设置值提供程序部分了解更多).
  • Properties: 设置此值的自定义属性 名称/值 集合,可以在之后的应用程序代码中使用.

获得SettingDefinition并更改属性

在模块中可能希望更改部分属性来重新定义某些属性的值

public class StudentSetting : SettingDefinitionProvider{
	public override void Define(ISettingDefinitionContext context){
		// 获得Name为Student.Type
		var type = context.GetOrNull("Student.Type");
		if(type != null){
			// 改变默认值
			type.DefaultValue = "Bike";
			type.DisplayName = new LocalizableString(typeof(LocalizationResource), "Server_DisplayName");
		}
	}
}

读取设置值

应用层读取

在ABP框架中,所有基于IApplicationService的类都默认注入了ISettingProvider属性,可直接在Service类中使用。

public class StudentAppService :
            CrudAppService<
                Student, 
                StudentDto, ks
                Guid,
                PagedAndSortedResultRequestDto,
                CreateUpdateStudentDto>, 
            IStudentAppService 
    {
    	public override async Task<StudentDto> GetAsync(Guid id)
    	{
    		// 获得所有属性
    		List<SettingValue> vals = await this.SettingProvider.GetAllAsync();
    	}
    }

对于未默认注入的类,可通过定义ISettingProvider来获取设置的数值

public class StudentAppComponent{
	// 声明一个ISettingProvider实例
	private readonly ISettingProvider _settingProvider;
	// 通过构造器进行赋值
	public StudentAppComponent(ISettingProvider settingProvider){
		_settingProvider = settingProvider;
	}
	
	public async Task GetStudentAttr(){
		string type = await _settingProvider.GetOrNullAsync("Student.Type");
	}
}

前端读取

IsVisibleToClients设置为true,那么可以使用javascript在客户端获得当前的值。

var type = abp.setting.get('Student.Type');
var attribute = abp.setting.getInt('Student.Attribute');
var isWorking = abp.setting.getBoolean('Student.isWorking');

标签:Student,配置,ABP,设置,type,public,属性
From: https://www.cnblogs.com/wanghun315/p/17566439.html

相关文章

  • jvm配置
    Java虚拟机(JVM)参数配置说明 在Java、J2EE大型应用中,JVM非标准参数的配置直接关系到整个系统的性能。JVM非标准参数指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,为了提高性能,往往需要调整这些参数,以求系统达到最佳新......
  • 用CentOS7操作系统配置CentOS8内网源
    需求:因内网环境,无法访问公网,机房新上架一批服务器,使用了centos8的操作系统,为安装软件时方便安装依赖,在内网服务器中搭建了一个centos8.5.2111的yum源。yum源服务器:centos7.9系统。 外网服务器操作:1、在一台能够使用外网的服务器中,搭建好网络源(这里使用阿里的源)cd/etc/yum.......
  • windbg配置网络版双机调试【转】
     一丶配置以及简介1.1简介与配置​windbg配置双机调试从来都是有很多方式。比如之前的是串口模式。现在我写一篇利用网络来进行配置的双击调试。首先准备的工具以及流程如下1.准备一台虚拟机。里面安装window1064版本(我是64,这个随意)itllyou上下载即可2.window......
  • 要在HTML中让文字居中,可以使用CSS样式来设置文本的对齐方式
    以下是几种常见的居中文本的方法:使用text-align:center;CSS样式:这个方法适用于将文本居中对齐在其父元素内。可以将text-align:center;应用于父元素,这将使其内部的所有文本内容都居中对齐。示例代码:<style>.container{text-align:center;}</style>......
  • ASP.NET Core中的配置Configuration的使用及其源码解析
    本章将和大家分享ASP.NETCore中的配置Configuration的使用及其源码解析。1、使用IConfiguration读取配置文件内容Demo的目录结构如下所示:本Demo的Web项目为ASP.NETCoreWeb应用程序(目标框架为.NETCore3.1)MVC项目。 首先添加配置文件,内容如下所示:(注意:配置文件的编码......
  • spring boot 如何配置多个数据源,mysql和oracle
    在SpringBoot中配置多个数据源,例如MySQL和Oracle,可以通过以下步骤实现:添加依赖在pom.xml文件中添加MySQL和Oracle的依赖:<!--MySQL--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!......
  • firewalld防火墙设置
    #!/bin/bash#基础信息hostname=`hostname`date=`date"+%Y-%m-%d%H:%M:%S"`#输入处理-判断端口check_newport(){while[[true]];doread-p"请输入开放端口(1-65535):"newport;if[[-n$newport]];thenifgrep'^[[:digit:]]*$'......
  • nginx反代配置tips
    nginx轮训导致验证码不正确在upstream里添加ip_hash;,例子:http{upstreamtest{#这样同一台电脑会一直访问到同一台机器ip_hash;server172.0.0.1:8080;}}静态资源访问出错在location里重写header:server{location/{......
  • CentOS7安装Mysql8并进行主从复制配置
    场景CentOS7中安装Mysql8并配置远程连接和修改密码等:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131807269在上面实现安装Mysql8的基础上,克隆出两台机器,修改ip后进行mysql的主从复制搭建。Mysql主从复制在主库上把数据更改记录到二进制日志中(BinaryLog)中,这......
  • 主题配置
    1、首先将主题设置为SimpleMemory模板地址:https://www.cnblogs.com/skins.aspx?page=12、主题配置文档地址按照文档进行配置:https://bndong.github.io/Cnblogs-Theme-SimpleMemory/v2/#/......