.NetCore库类项⽬跨项⽬读取配置⽂件
在项⽬开始之前我们可以先去了解⼀下IConfiguration接⼝,.Net Core Web应⽤程序类似于⼀个控制台,当程序运⾏到Startup时会⾃动注⼊IConfiguration,默认读取
程琳资料当前.Net Core Web应⽤程序中的appsettings.json⽂件。读取当前.Net Core Web应⽤程序的配置⽂件可以⾃动直接注⼊,但如果我们需要使另⼀个类库项⽬读取到指
定.Net Core Web应⽤程序中的配置⽂件,需要怎么做?凭借Asp.Net Core⽆处不在的“依赖注⼊”,我们可以在Startup执⾏时将读取的配置信息注⼊到类库项⽬中,之
后我们可以愉快的使⽤配置信息了
新建⼀个.Net Core的类库项⽬和.Net Core Web应⽤程序,修改Web应⽤程序中的appsettings.json⽂件加⼊数据库连接字符串⽤于之后的试验。
{
"WebConfig": {
"OracleConnectionString": "User Id=fjh;Password=fjh_123;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)));Pooling = T  },
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
.Net Core的类库项⽬中新建⼀个静态类:ConfigurationHelper.cs
使⽤IConfiguration接⼝需要添加依赖项:Microsoft.Extensions.Configuration
using Microsoft.Extensions.Configuration;
namespace Read_Configuration_File
{
郭冬临个人资料public class ConfigurationHelper
{
private static IConfiguration _config;
public static void Configure(IConfiguration config)
{
_config = config;
}
/
吴子恩牵手
//<summary>
///根据配置⽂件键读取对应的值
///</summary>
///<param name="Key"></param>
读取配置文件失败
///<returns></returns>
public static string GetConfigValueByKey(string Key)
{
var value = _config[Key];
return value;
}
}
重庆工商银行信用卡}
创建⼀个静态字段_config⽤来存储配置信息,同时定义⼀个静态⽅式通过配置⽂件的键值获取对应的值。
.Net Core的类库项⽬中新建⼀个静态类:Utilconfig.cs
创建⼀个只读静态字段OracleConnectionString存储根据键值获得的配置⽂件的值
namespace Read_Configuration_File
{
public static class UtilConfig
{
public static string OracleConnectionString => ConfigurationHelper.GetConfigValueByKey("WebConfig:OracleConnectionString") == null ? "" : string.Format(ConfigurationHelper.GetConfigValueByKey("WebConfig:OracleConnectionString
}
}
最关键的⼀步,修改.Net Core Web应⽤程序中的Startup.cs
我们需要将配置信息注⼊到类库项⽬,需要使⽤ConfiurationHelper类下的静态⽅法。在创建的.Net Core Web应⽤程序的Startup⽂件中调⽤Configure⽅法,使⽤前不要忘了先
引⽤类库项⽬
到这⾥为⽌,我们可以调⽤静态类UtilConfig中的静态只读字段OracleConnectionString愉快的使⽤.Net Core Web应⽤程序的配置信息。接下来我们来验证⼀下项⽬是否成功
在.Net Core库类项⽬中新建⼀个类:ConnectionRead
张含韵个人资料简介及创建⼀个静态⽅法GetConnectionStr()返回获取到的配置⽂件信息
namespace Read_Configuration_File
{
public class ConnectionRead
{
///<summary>
///定义⼀个静态⽅法获取连接字符串
///</summary>
///<returns></returns>
public static string GetConnectionStr()
{
var connStr = UtilConfig.OracleConnectionString;
return connStr;
}
}
}
项⽬结构
在.Net Core Web项⽬中的HomeController主页中调⽤这个静态⽅法,如果能正确读取到配置⽂件的值,那项⽬就成功了
修改⼀下主页
执⾏⽂件我们可以发现主页上显⽰了我们想要读取的数据库连接的配置信息。Nice!成功