在C#编程中,配置文件通常用于存储应用程序的设置,如数据库连接字符串、API密钥或用户配置等。这些设置可以在不修改代码的情况下更改,使得应用程序更加灵活。本文将详细介绍六种不同的方法来读取C#中的配置文件。 1. 使用`ConfigurationManager`类: 这是最常见的读取配置文件的方法。C#的`System.Configuration`命名空间提供了`ConfigurationManager`类,可以直接访问`app.config`或`web.config`文件中的配置节。例如,对于上面的配置文件,我们可以创建自定义的配置节类,如`SQLConfiguration`和`AccountConfiguration`,然后使用`ConfigurationManager.GetSection`方法获取指定的配置节。示例代码如下: ```csharp using System.Configuration; class SQLConfiguration : ConfigurationSection { // ... } SQLConfiguration sqlConfig = (SQLConfiguration)ConfigurationManager.GetSection("SQLConfiguration"); Console.WriteLine(sqlConfig.Type); Console.WriteLine(sqlConfig.ConnectionString); ``` 2. 使用`ConfigurationElement`和`ConfigurationSection`: 这种方法允许自定义配置元素和节。例如,我们可以创建一个`AccountConfiguration`类,它继承自`ConfigurationSection`,并定义一个`AccountSectionElement`类,继承自`ConfigurationElement`,来表示`users`元素。然后通过属性访问配置值: ```csharp public class AccountConfiguration : ConfigurationSection { // ... } public class AccountSectionElement : ConfigurationElement { // ... } AccountConfiguration accountConfig = (AccountConfiguration)ConfigurationManager.GetSection("AccountConfiguration"); AccountSectionElement user = accountConfig.Users; Console.WriteLine(user.UserName); Console.WriteLine(user.Password); ``` 3. 使用`ExeConfigurationFileMap`: 如果你的应用程序配置文件不在默认位置,可以使用`ExeConfigurationFileMap`类指定文件路径: ```csharp var fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = "path_to_your_config_file"; Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); // 然后使用config对象进行读取操作 ``` 4. 使用`ConfigurationBuilder`: .NET Core引入了`Microsoft.Extensions.Configuration`包,提供了更灵活的配置系统。可以使用`ConfigurationBuilder`来加载多个配置源,包括JSON、XML和环境变量: ```csharp using Microsoft.Extensions.Configuration; IConfigurationBuilder builder = new ConfigurationBuilder() .AddXmlFile("appsettings.xml", optional: true, reloadOnChange: true); IConfigurationRoot configuration = builder.Build(); string connectionString = configuration.GetConnectionString("SQLConfiguration"); ``` 5. 使用`XDocument`或`XmlDocument`: 如果你不关心配置节的强类型化,可以直接使用XML处理库解析配置文件: ```csharp using System.Xml.Linq; XDocument doc = XDocument.Load("appsettings.xml"); string connectionString = doc.Descendants("SQLConfiguration").First().Attribute("connectionString").Value; ``` 6. 使用`StreamReader`和`XmlReader`: 这是一种基础的读取XML文件的方法,适合对文件进行逐行或逐节点处理: ```csharp using System.IO; using System.Xml; using(StreamReader reader = new StreamReader("appsettings.xml")) { using(XmlReader xmlReader = XmlReader.Create(reader)) { while(xmlReader.Read()) { if(xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "SQLConfiguration") { xmlReader.MoveToNextAttribute(); if(xmlReader.Name == "connectionString") { string connectionString = xmlReader.Value; break; } } } } } ``` 以上就是六种使用C#读取配置文件的方法。每种方法都有其适用场景,根据项目需求和团队习惯选择合适的方式。记得在实际开发中,要确保正确处理异常,以及在读取敏感信息时采取适当的加密措施。
2024-07-04 15:24:49 28KB C#读取配置文件
1
本资源为Matlab读取.dat二进制文件的工程,包括了读取、二进制解析、数据拼接、数据组合、数据绘图、将数据分析结果、绘图生成WORD报告。一键数据分析,使用方便。 本资源适用于Matlab处理批量数据而苦恼的工程师/学者。本资源的特点是包含了数据转换的全套实例,自动生成WORD报告的实用实例。生成的WORD报告中的分析结果以标题形式显示。这便于在查看WORD报告是方便的找到对应的数据结果。 本资源适用于工程领域包括铁路行业/风电/控制系统中控制单元中的记录数据。适用场景是对于相同数据进行大批量特征分析。
1
在开发Asp.net站点的时候,我们会遇到很多的配置参数:网站名称,上传图片后缀,上传文件后缀,关键字过滤,数据库连接字串等等,这些内容如果比较少的话,直接配置到Web.config文件中,借由.NET提供的操作类,将会非常方便的来操作这些自定义配置节点,此代码中包含简单、有父节点、和节点集合的配置与读取方法,注释也很清晰,值得参考
2024-05-21 16:14:59 47KB 读取配置文件
1
《如何读取csv文件内容建立映射表(基于pandas)》这篇博客对应的处理文件
2024-05-05 17:12:40 1.32MB pandas
1
TGA文件,也就是Targa文件,是一种图片的格式,在游戏和绘图领域中用得比较广泛。TGA文件是位图文件,存储着各个像素的颜色信息。本来想直接使用《OpenGL超级宝典》里面现成的TGA文件载入函数,然后修改成一个类,但遗憾的是,书上的代码并不适合于所有的TGA文件。有些由GIMP和Photoshop创建TGA文件无法载入。这真是让我感到不爽。好在自己有了几年的C/C++编程经验,通过上网查询TGA文件的格式规范,我终于了解到了TGA文件的奥秘。带着一份自信和一点探索精神,我用了大概一天的时间完成了TGA文件的读取。
2024-04-21 23:42:16 586KB OpenGL glut
1
1.该代码可用于标定或测试分析工作中,在测试结束,数据回灌时,可用于在matlab中读取MF4格式文件 2.读取之后,将MF4文件中包含的信号以及对应的数据返回到data结构体中,供后续使用。后期需要使用MF4文件中信号的,可以直接通过调用data结构体即可 (注:由于matlab处理数据的规则要求,读取的信号名称将实际测量中调用的信号名称中的 '.' 换成了 '_',其他没有任何处理)
2024-04-02 17:14:26 1KB matlab 测试分析
1
包含源文件和交叉编译lib文件,opencv3.4.3版本,FFmpeg4.2.9版本,交叉编译器gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu,详细内容见博客:https://blog.csdn.net/dashuo0501/article/details/133985172?spm=1001.2014.3001.5502
2024-04-02 15:49:04 113.66MB linux
1
Python读取YUV格式文件,并使用opencv显示的方法 opencv可以读取的图片类型比较多,但大多是比较常见的类型,比如”.jpg”和”.png”,但它不能直接读取YUV格式的文件,需要通过python读取YUV文件,并进行相应的转换后,才能被opencv读取,并进行后续相应的处理. 话不多说,直接上程序。 import cv2 from numpy import * import Image screenLevels = 255.0 def yuv_import(filename,dims,numfrm,startfrm): fp=open(filename,'rb') blk
2024-03-25 19:07:44 39KB opencv python
1
这是一个C++程序保存当前系统时间和读取当前系统时间的程序,在开发中如过要用到文件的保存十分有用。
2024-03-05 19:32:43 7.12MB ,,C++保存 txt文档
1
EXCEL整体写入和读取表格,非常方便的
2024-03-02 17:14:39 73KB EXCEL
1