asp.net core 配置


ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML配置文件web.config,现在支持各种格式的配置,比以前灵活多了。

支持一下几种:

MemoryConfigurationProvider

EnvironmentVariablesConfigurationProvider

CommandLineConfigurationProvider

JsonConfigurationProvider

XmlConfiguationProvider

IniConfigurationProvider

自定义ConfigurationProvider

 

今天我们看看JsonConfig文件的使用:


Core中配置涉及的类结构

 

 


 

 

ConfgurationSource:相当于配饰的数据源,可以是内存,可以是配置文件。

ConfigurationBuilder :配饰数据源的组装车间,负责取出数据源供配置类消费Configuration。

Configuration :配置数据的映射

 

配置类定义:

 

public class CompanyInfoOptions

{

public CompanyInfoOptions(IConfiguration config)

{

this.Name=config["name"];

this.Address=config["address"];

this.CreateDate = DateTime.Parse( config["createDate"]);

}

public String Name

{

get;

set;

}

 

public String Address

{

get;

set;

}

 

public DateTime CreateDate

{

get;

set;

}

}

 
VSCode 文件组织形式:

{
"companyInfo": {
"Name": "hbb0b0",
"address": "Xi'AN JinYeLu number6",
"createDate": "2017/08/06"
}
}

 

注意配置文件在运行目录,与以前配置不同的配置文件不用拷贝到Bin目录。

 

Main中调用:

 

class Program

{

//Section 节名称

const string str_SectionCompanyInfo="companyInfo";

static void Main(string[] args)

{

Console.WriteLine(Directory.GetCurrentDirectory());

//ConfigtionBuilder初始化

var config = new ConfigurationBuilder()

.SetBasePath(Directory.GetCurrentDirectory())

.AddJsonFile("companyinfo.json", optional:true,reloadOnChange:true)

.Build();

//初始化CompanyInfoOptions

CompanyInfoOptions options= new CompanyInfoOptions(config.GetSection(str_SectionCompanyInfo));

 

//输出

Console.WriteLine($"name:{options.Name}");

Console.WriteLine($"address:{options.Address}");

Console.WriteLine($"createDate:{options.CreateDate.ToString()}");

}

}

 

 

posted @ 2017-08-06 10:06  b0b0  阅读(284)  评论(0编辑  收藏  举报