在项目开始之前我们可以先去了解一下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!成功
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。