在项目开始之前我们可以先去了解一下 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 = True;Max Pool Size = 800;Min Pool Size = 1;Connect Timeout=5;"
- },
- "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! 成功
来源: https://www.cnblogs.com/FangKuaiGe/p/10541451.html