当前位置: 首页 > wzjs >正文

网站建设学什么好做网站网页维护手机App开发

网站建设学什么好,做网站网页维护手机App开发,网站空间代理加盟,高端网站设计制作的3.2.1 配置系统的基本使用 .NET Core中的配置系统支持非常丰富的配置源,包括文件(JSON、XML、INI等)、注册表、环境变量、命令行、Azure Key Vault等,配置系统还支持自定义配置源。 用配置系统开发包Microsoft.Extensions.Confi…

3.2.1 配置系统的基本使用

.NET Core中的配置系统支持非常丰富的配置源,包括文件(JSON、XML、INI等)、注册表、环境变量、命令行、Azure Key Vault等,配置系统还支持自定义配置源。

用配置系统开发包Microsoft.Extensions.Configuration(这是.NetCore 中配置系统的一个基础开发包),通过Microsoft.Extensions.Configuration.Json读取JSON配置文件:

在项目中添加一个JSON文件:

{"name": "枸杞泡茶","proxy": {"address": "192.168.1.250","port": "5432"}
}

设置文件属性:如果较新则复制

读取配置:


using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;
using System.Runtime.InteropServices;ConfigurationBuilder cfBuilder = new ConfigurationBuilder();
cfBuilder.AddJsonFile("config.json",optional:false,reloadOnChange:false);
IConfigurationRoot config = cfBuilder.Build();
string name = config["name"];
Console.WriteLine($"name={name}");
string proxyAddress = config.GetSection("proxy:address").Value;
Console.WriteLine($"proxyAddress={proxyAddress}");
Console.ReadKey();

调试结果:

3.2.2 使用选项方式读取配置

这是.NET Core中比较推荐的方式,因为他跟依赖注入机制结合的更好,且可实现配置修改后的自动刷新,所以更方便使用。在使用这种方式时需要安装两个包:

Microsoft.Extensions.Options

Microsoft.Extensions.Configuration.Binder

添加一个文件appsetting.json:

{"Logging": { "LogLevel": { "Default": "warning" } },"DB": {"DbType": "SQLServer","ConnectionString": "Data Source=.,Initial Catalog=DemoDB; Integrated Security=True"},"Smtp": {"Server": "smtp.youzack.com","UserName": "zack","Password": "hello888","AllowedHosts": "*"}
}

建立对应配置的模型:

public class DbSettings
{public string DbType { get; set; }public string ConnectionString { get; set; }
}
public class SmtpSettings
{public string Server { get; set; }public string UserName { get; set; }public string Password { get; set; }
}

选项方式读取配置时需要和依赖注入一起使用,因此创建一个类获取注入的选项值。

书中所讲,有三种泛型接口类型可使用:IOptions<T>IOptionsMonitor<T>IOptionsSnapshot<T>。结合三者的特性:IOptions<T>不能即时修改应用,IOptionsMonitor<T>在范围内不保持一致,IOptionsSnapshot<T>可在同一范围内保持一致。所以主要讲解了IOptionsSnapshot<T> 。

这是读取配置的Demo类:

class Demo
{private readonly IOptionsSnapshot<DbSettings> optDbSettings;private readonly IOptionsSnapshot<SmtpSettings> optSmtpSettings;public Demo(IOptionsSnapshot<DbSettings> optDbSettings, IOptionsSnapshot<SmtpSettings> optSmtpSettings){this.optDbSettings = optDbSettings;this.optSmtpSettings = optSmtpSettings;}public void Test(){var db = optDbSettings.Value;Console.WriteLine($"数据库:{db.DbType},{db.ConnectionString}");var smtp = optSmtpSettings.Value;Console.WriteLine($"Smtp:{smtp.Server},{smtp.UserName},{smtp.Password}");}
}

编写注入服务到容器的代码:

// Configure and read from appsettings.json
ConfigurationBuilder configBuilder = new ConfigurationBuilder();
configBuilder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
IConfigurationRoot config = configBuilder.Build();// Set up dependency injection
ServiceCollection services = new ServiceCollection();services.AddOptions().Configure<DbSettings>(e => config.GetSection("DB").Bind(e)).Configure<SmtpSettings>(e => config.GetSection("smtp").Bind(e));
services.AddTransient<Demo>();// Build service provider
using (var sp = services.BuildServiceProvider())
{while (true){using (var scope = sp.CreateScope()){var spScope = scope.ServiceProvider;var demo = spScope.GetRequiredService<Demo>();demo.Test();// Access and print SMTP settingsvar smtpSettings = spScope.GetRequiredService<IOptionsSnapshot<SmtpSettings>>().Value;Console.WriteLine($"Smtp: {smtpSettings.Server}, {smtpSettings.UserName}, {smtpSettings.Password}");}Console.WriteLine("可以改配置啦");Console.ReadKey();}
}

启动调试,不退出程序修改配置文件并保存:

Enter健继续执行:程序内读取的参数已经发生变化:

3.2.3 从命令行读取配置

通过NuGet安装:

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.CommandLine

读取:

using Microsoft.Extensions.Configuration.CommandLine;
using Microsoft.Extensions.Configuration;ConfigurationBuilder configBuilder = new ConfigurationBuilder();
configBuilder.AddCommandLine(args);
IConfigurationRoot config = configBuilder.Build();
string name = config["Name"];
Console.WriteLine($"Name:{name}");

启动调试:

3.2.4 从环境变量读取配置

安装NuGet包 Microsoft.Extensions.Configuration.EnvironmentVariables

例如,有这样一个环境变量:

读取:

using Microsoft.Extensions.Configuration;ConfigurationBuilder configBuilder = new ConfigurationBuilder();
configBuilder.AddEnvironmentVariables("DM_");IConfigurationRoot config = configBuilder.Build();
string home = config["HOME"];
//name = Environment.GetEnvironmentVariable("DM_HOME");
Console.WriteLine($"Home:{home}");
Console.ReadKey();

读取结果

3.2.5 其他配置提供程序

讲了一个Apollo,可以在.NET Core 中连接Apollo读取配置

3.2.6 案例:开发自己的配置提供程序

这里讲了杨老师自己开发的一个配置一共程序:Zack.AnyDBConfigProvider。

3.2.7 多配置源问题

.NET Core 的配置系统中允许添加多个配置源,且遵循一个原则:后添加的配置提供程序中的配置覆盖之前的配置。


文章转载自:

http://0toxgM5c.rntgy.cn
http://M82vvuSm.rntgy.cn
http://3R2VpqiT.rntgy.cn
http://fjvU132G.rntgy.cn
http://P0M2FIDf.rntgy.cn
http://UKfMs7b9.rntgy.cn
http://NEEQOXeX.rntgy.cn
http://gfkRYezR.rntgy.cn
http://qqoD4Oq7.rntgy.cn
http://xcHuBkLt.rntgy.cn
http://9Hm6V5hR.rntgy.cn
http://0EgvSfvG.rntgy.cn
http://8jd5gaC1.rntgy.cn
http://imKyoYye.rntgy.cn
http://jFSO2Sta.rntgy.cn
http://97iueP0k.rntgy.cn
http://4wz3mr8Q.rntgy.cn
http://YzaI0KpU.rntgy.cn
http://2VixhN9S.rntgy.cn
http://DkmKLnpt.rntgy.cn
http://UXIMxIbK.rntgy.cn
http://pE0HGPNP.rntgy.cn
http://trZErzm5.rntgy.cn
http://nQNJOaEE.rntgy.cn
http://CPylfxrz.rntgy.cn
http://YeYS15pS.rntgy.cn
http://0iBNSyq0.rntgy.cn
http://H7j7AS3G.rntgy.cn
http://aOxWHiQj.rntgy.cn
http://M3qVFgti.rntgy.cn
http://www.dtcms.com/wzjs/684642.html

相关文章:

  • 品牌网站案例阿里云增加网站
  • 义乌做网站zisou8浩森宇特北京网站建设
  • 镇江市机关效能与作风建设网站打开小程序入口直接进入
  • 静态网站怎么做优化53套网站源码
  • 企业组织网站建设方案网站的建设的含义
  • 优秀个人网站设计图片设计网站页面鉴赏技巧ppt
  • 长安网站建设多少钱绍兴建设用地使用权网站
  • 郑州网站及优化wordpress插件国际化
  • 新网网站建设资料互联网技术应用学什么
  • 网站建设的中期目标大型网站制作导图
  • 做外贸网站违法吗珠海网站建设怎么样
  • 如何建网站并做推广网站设计制作的服务和质量
  • 怎样把网站做成软件网站的提交重置按钮怎么做
  • 朝阳网站网站建设需要使用阿里云吗
  • 新的seo网站优化排名 网站制作app平台需要什么流程
  • 做免费的小说网站可以赚钱吗阿里百秀wordpress大前端
  • 福清市城乡建设局网站火车头采集器wordpress下载
  • wordpress用ip访问搜索引擎优化搜索优化
  • 建立公司微信平台 网站平台辽宁建筑信息网查询
  • 微官网和移动网站区别建设网站及域名费用
  • 模板网站建设报价吉林长春
  • 网站建设公司实力自己怎么网上注销公司
  • 高端网站开放企业网站的推广建议
  • 建材网站模板关于营销的网站有哪些
  • html5 网站wordpress 文章投票
  • 电商设计学什么网络seo优化公司
  • 响应网站 整屏公司建站详细步骤
  • 招聘网站做招聘顾问网站建设前需求调研表
  • 云平台建设网站wordpress 三主题
  • 个人网站例子九亿app开发公司