当前位置:网站首页>C [essential skills] use of configurationmanager class (use of file app.config)
C [essential skills] use of configurationmanager class (use of file app.config)
2022-07-05 08:47:00 【As bright as noon】
List of articles
Preface
In the project , We are used to using ConfigurationManager To read some constants . Such as linked database string 、 Some data to be configured ( WeChat 、QQ、 Alipay ) Etc . We need to record these data in app.config perhaps web.config in . Next, let's take a specific look at ConfigurationManager :
One 、 Introduce
Namespace :System.Configuration
Assembly : System.Configuration.dll
quote : In the use of , If appear “ The name... Does not exist in the current context :ConfigurationManager”, You need to check whether there are referenced assemblies and namespaces .

ConfigurationManager class :
Include properties (AppSettings、ConnectionStrings )、
Method (GetSection、OpenExeConfiguration、OpenExeConfiguration、OpenMachineConfiguration、OpenMappedExeConfiguration、OpenMappedExeConfiguration、OpenMappedMachineConfiguration、RefreshSection)
Two 、 Use
2.1 adopt AppSettings To get data
Simple use cases :
using System;
using System.Configuration;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ReadAllSettings();
ReadSetting("Setting1");
ReadSetting("NotValid");
AddUpdateAppSettings("NewSetting", "May 7, 2014");
AddUpdateAppSettings("Setting1", "May 8, 2014");
ReadAllSettings();
Console.ReadLine();
}
static void ReadAllSettings()
{
try
{
var appSettings = ConfigurationManager.AppSettings;
if (appSettings.Count == 0)
{
Console.WriteLine("AppSettings is empty.");
}
else
{
foreach (var key in appSettings.AllKeys)
{
Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key]);
}
}
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
}
static void ReadSetting(string key)
{
try
{
var appSettings = ConfigurationManager.AppSettings;
string result = appSettings[key] ?? "Not Found";
Console.WriteLine(result);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
}
static void AddUpdateAppSettings(string key, string value)
{
try
{
var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error writing app settings");
}
}
}
}
In the file App.config Middle configuration :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<appSettings>
<add key="Setting1" value="May 5,2018"/>
<add key="Setting2" value="May 5,2017"/>
</appSettings>
</configuration>
Running results :
2.2 By using ConnectionStrings To get data
Examples are as follows :
using System;
using System.Configuration;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ReadUsers();
}
static void ReadUsers()
{
var connectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
string queryString = "SELECT Id, Name FROM abpusers;";
using (var connection = new SqlConnection(connectionString))
{
var command = new SqlCommand(queryString, connection);
connection.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}
}
}
}
}
}
stay App.config Configure database link string in :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<appSettings>
<add key="Setting1" value="May 5,2018"/>
<add key="Setting2" value="May 5,2017"/>
</appSettings>
<connectionStrings>
<add name="Default" connectionString="Server=127.0.0.1; Database=CityManage; Trusted_Connection=False; Uid=root; pwd=zxx123456;" providerName="System.Data.SqlClient" />
<add name="Abp.Redis.Cache" connectionString="localhost" />
</connectionStrings>
</configuration>
边栏推荐
- Halcon affine transformations to regions
- 多元线性回归(梯度下降法)
- Programming implementation of ROS learning 2 publisher node
- Ros-11 common visualization tools
- How apaas is applied in different organizational structures
- Matlab tips (28) fuzzy comprehensive evaluation
- Daily question - input a date and output the day of the year
- Run menu analysis
- Redis实现高性能的全文搜索引擎---RediSearch
- 【日常训练】1200. 最小绝对差
猜你喜欢
![[牛客网刷题 Day4] JZ55 二叉树的深度](/img/f7/ca8ad43b8d9bf13df949b2f00f6d6c.png)
[牛客网刷题 Day4] JZ55 二叉树的深度

猜谜语啦(7)

RT-Thread内核快速入门,内核实现与应用开发学习随笔记

Guess riddles (7)

【NOI模拟赛】汁树(树形DP)

Guess riddles (6)

Old Wang's esp8266 and old Wu's ws2818 light strip

Bluebridge cup internet of things basic graphic tutorial - GPIO input key control LD5 on and off

Lori remote control commissioning record

深度学习模型与湿实验的结合,有望用于代谢通量分析
随机推荐
深度学习模型与湿实验的结合,有望用于代谢通量分析
asp.net(c#)的货币格式化
U8g2 drawing
猜谜语啦(10)
Ros-11 common visualization tools
PIP installation
LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件
Search data in geo database
[matlab] matlab reads and writes Excel
图解八道经典指针笔试题
Latex improve
Halcon blob analysis (ball.hdev)
Beautiful soup parsing and extracting data
Bit operation related operations
[Niuke brush questions day4] jz55 depth of binary tree
猜谜语啦(4)
The first week of summer vacation
Ros-10 roslaunch summary
RT-Thread内核快速入门,内核实现与应用开发学习随笔记
特征工程