1.首先创见Core控制台应用程序  并且引入  AspNetCore.All

首先我们写入配置信息:直接代码如下

//配置信息的根对象
public static IConfigurationRoot Configuration { get; set; } //以键值对的形式拼装将要填添加在JSon配置文件的配置信息
var dic = new Dictionary<string, string>
{
{"Class", "配置信息"},
{"Infor", "User"},
{"User:0:Name", "xiaoming"},
{"User:0:Age", ""},
{"User:1:Name", "xiao"},
{"User:1:Age", ""}
};
//创建配置信息读写的对象 基类 IConfigurationBuilder 用于创建配置信息的类
var builder = new ConfigurationBuilder();
//AddInMemoryCollection 配置的信息添加到 IConfigurationBuilder中 为其创建配置提供信息
builder.AddInMemoryCollection(dic);
//读写配置信息 以键值对的形式创建
Configuration = builder.Build();

接下来是读取 我们上面写入的配置信息

 //GetSection 读取对象类型的配置信息  Bind 绑定信息
var user = new User();
Console.WriteLine("获取单个对象的配置信息");
Configuration.GetSection("User:0").Bind(user);
Console.WriteLine($"年龄:{user.Age} 名字:{user.Name}");
Console.WriteLine("获取对象集合的配置信息");
var userList = new List<User>();
Configuration.GetSection("User").Bind(userList);
foreach (var item in userList)
{
Console.WriteLine($"年龄:{item.Age} 名字:{item.Name}");
}
Console.WriteLine("获取单个Key的Values"); //不是对象的配置信息不能用对象来读取
Console.WriteLine(Configuration["Infor"]); //取值并转换
var Age = Configuration.GetValue<int>("User:0:Age");
//取值并转换
var Age0 = Configuration.GetValue("User:0:Age",);

User类

    internal class User
{
public User()
{ }
public string Name { get; set; }
public string Age { get; set; }
}

以下是完整的代码

using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic; namespace 写入配置信息
{
class Program
{
//配置信息的根对象
public static IConfigurationRoot Configuration { get; set; }
static void Main(string[] args)
{
//首先引入Nuget包 AspNetCore.All //以键值对的形式拼装将要填添加在JSon配置文件的配置信息
var dic = new Dictionary<string, string>
{
{"Class", "配置信息"},
{"Infor", "User"},
{"User:0:Name", "xiaoming"},
{"User:0:Age", ""},
{"User:1:Name", "xiao"},
{"User:1:Age", ""}
};
//创建配置信息读写的对象 基类 IConfigurationBuilder 用于创建配置信息的类
var builder = new ConfigurationBuilder();
//AddInMemoryCollection 配置的信息添加到 IConfigurationBuilder中 为其创建配置提供信息
builder.AddInMemoryCollection(dic);
//读写配置信息 以键值对的形式创建
Configuration = builder.Build(); //GetSection 读取对象类型的配置信息 Bind 绑定信息
var user = new User();
Console.WriteLine("获取单个对象的配置信息");
Configuration.GetSection("User:0").Bind(user);
Console.WriteLine($"年龄:{user.Age} 名字:{user.Name}");
Console.WriteLine("获取对象集合的配置信息");
var userList = new List<User>();
Configuration.GetSection("User").Bind(userList);
foreach (var item in userList)
{
Console.WriteLine($"年龄:{item.Age} 名字:{item.Name}");
}
Console.WriteLine("获取单个Key的Values"); //不是对象的配置信息不能用对象来读取
Console.WriteLine(Configuration["Infor"]); //取值并转换
var Age = Configuration.GetValue<int>("User:0:Age");
//取值并转换
var Age0 = Configuration.GetValue("User:0:Age",); Console.WriteLine($"Age {Age}");
Console.WriteLine($"Age0 {Age0}"); Console.ReadKey();
}
} internal class User
{
public User()
{ }
public string Name { get; set; }
public string Age { get; set; }
} }

在实际项目中我封装了如下代码:用于获取配置信息

    /// <summary>
///
/// </summary>
public class AspNetCoreApiResultFilter
{
/// <summary>
/// 获取当前文件路径
/// </summary>
public static IHostingEnvironment Envs { get; set; } /// <summary>
/// 重新构造
/// </summary>
/// <param name="context"></param>
public AspNetCoreApiResultFilter( IHostingEnvironment environment)
{
Envs = environment;
}
/// <summary>
/// 获取配置信息
/// </summary>
/// <param name="ConfigurationKey">JsonKey</param>
/// <returns></returns>
public static string Configuration(string ConfigurationKey)
{
var BuilderAppStting = new ConfigurationBuilder().SetBasePath(Envs.ContentRootPath).AddJsonFile("appsettings.json");
var configuration = BuilderAppStting.Build();
return configuration[ConfigurationKey];
}
}

调用 Configuration("appsetings")   appsetings代表着配置信息的Key

.SetBasePath(Envs.ContentRootPath).AddJsonFile("appsettings.json") 代表着在基础路径上找到配置文件的信息

有不足之处希望大家指出,如果对您有帮助的话帮助推荐  谢谢!

下一章自定义配置信息 EF链接数据库

AspNet Core 程序写入配置信息并再次读取配置信息的更多相关文章

  1. SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型

    SQL 横转竖 .竖专横 (转载)   普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...

  2. 如何使用AWS和Azure的配置存储服务保存读取配置

    原文:Want to yank configuration values from your .NET Core apps? 作者:pauljwheeler 译文:https://www.cnblog ...

  3. spring配置:context:property-placeholder 读取配置文件信息 在配置文件中使用el表达式填充值

    spring将properties文件读取后在配置文件中直接将对象的配置信息填充到bean中的变量里. 原本使用PropertyPlaceholderConfigurer类进行文件信息配置.Prope ...

  4. AspNet Core结合Quartz使用定时任务且通过注入缓存或者配置参数

    一.经常在项目会用到定时任务同步数据或更新缓存等操作,在很久以前我们可能经常会用一个多线程或timer来做定时任务,这样能实现比较简单轻量级的任务:对于任务多且都调用频率不一样的任务,我们都会用到Qu ...

  5. .Net 4.X 提前用上 .Net Core 的配置模式以及热重载配置

    1. 前言 在提倡微服务及 Serverless 越来越普及的当下,在 .Net Core 之前,.Net 应用的配置模式往往依赖于一个名为 web.config 的 XML 文件,耦合性高,而可扩展 ...

  6. CentOS 下运行.net Core程序

    系统: 阿里云的默认 CentOS 7.5 镜像 项目环境:.Net Core 2.2 一.安装.Net Core的运行环境 第一步,如果是一台新的服务器,可以升级一下系统的基础软件.如果没有必要也可 ...

  7. 使用VS 2019发布.net core程序并部署到IIS的最新教程

    不管你是使用.net core开发的是web api还是网站类的程序,如果你是部署到IIS,那么下面的内容都适合于你,不会将.net core程序部署到IIS的朋友,可以看看这篇手把手教你部署.net ...

  8. 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等

    设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...

  9. ASP.NET Core的配置(1):读取配置信息

    提到"配置"二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化 ...

随机推荐

  1. Catch him

    Problem Description 在美式足球中,四分卫负责指挥整只球队的进攻战术和跑位,以及给接球员传球的任务.四分卫是一只球队进攻组最重要的球员,而且一般身体都相对比较弱小,所以通常球队会安排 ...

  2. Power Strings(KMP)

    Power Strings Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 45008   Accepted: 18794 D ...

  3. Linux中常见问题(磁盘 定时任务)

    第1章 linux无法上网 1)     第一步,先ping域名. ping www.baidu.com 2)再ping一个公网ip , ping 223.5.5.5/223.6.6.6/114.11 ...

  4. Cocoapods使用过程中遇到的问题

    前言:记录一些在CocoaPods使用过程中遇到的问题,本地环境:Xcode9.0 发现有的时候在执行pod init的时候不能正常地创建出来pod File文件,显示的错误如下: ――― MARKD ...

  5. 浅谈postgresql的GIN索引(通用倒排索引)

    1.倒排索引原理 倒排索引来源于搜索引擎的技术,可以说是搜索引擎的基石.正是有了倒排索引技术,搜索引擎才能有效率的进行数据库查找.删除等操作.在详细说明倒排索引之前,我们说一下与之相关的正排索引并与之 ...

  6. 通过geotools读写shp文件

    依赖jar包 读取shp public static void main(String[] path) { DbaseFileReader reader = null; try { reader = ...

  7. java 通过eclipse编辑器用mysql尝试 连接数据库

    注:本人学的是Oracle,用mysql连接数据库是一次尝试. 一.下载JDBC mysql驱动,导入jar包     我自己下载的是connector-java-6.0.6.jar,如下图所示,JD ...

  8. C# Dapper 轻量ORM调试对SQLServer

    Dapper简介 Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技 ...

  9. pandas选择数据-【老鱼学pandas】

    选择列 根据列名来选择某列的数据 import pandas as pd import numpy as np dates = pd.date_range("2017-01-08" ...

  10. PHP设计模式之组合模式

    当我们的一个对象可能代表一个单一的实体,或者一个组合的实体,但是仍然需要通过同样的方式被使用时,这种情形则适合使用组合模式的设计. 组合模式是一种结构型模式. 当看了书上的解释之后,并不是很理解,遂去 ...