zoukankan      html  css  js  c++  java
  • C# App.config配置文件的讲解

    App.config是C#开发WinForm程序的配置文件,开发Web程序的配置文件叫Web.config。本文介绍App.config的简介使用。

    我们先来打开一个App.config文件,看看它的内容像什么样子。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    <?xml version="1.0" encoding="utf-8" ?> 

    <configuration> 

     <connectionStrings> 

      <add name="conn" connectionString="this is connection string"/> 

     </connectionStrings> 

     <appSettings> 

      <add key="key1" value="value1" /> 

      <add key="key2" value="value2" /> 

     </appSettings> 

    </configuration>

    从这段代码可以看出,App.config完全是xml文档。它有如下几个特点。
    1、它有一个<configuration>标签,所有的配置项都在<configuration>标签下面。
    2、C#内置了一个<connectionStrings>节点,专门用于配置数据库连接字符串。它下面可以使用<Add>节点来添加多个数据库连接字符串。
    3、<appSettings>,大家了解Web.config的应该很熟悉它,它可以配置任何key-value这样的键值对。最早没有<connectionStrings>的时候,我们也是把数据库连接的字符串放在<appSettings>里面的。

    下面我们写一个程序来看看怎么从App.config这个程序配置文件中获取配置信息。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    using System; 

    using System.Collections.Generic; 

    using System.Collections; 

    using System.Linq; 

    using System.Text; 

    using System.Configuration; 

      

    namespace AppConfig 

      class Program 

      { 

        static void Main(string[] args) 

        { 

          Console.WriteLine("ConnectionStrings:"); 

          // ConfigurationManager.ConnectionStrings是一个ConnectionStringSettingsCollection对象 

          // 按数字循环得到一个个ConnectionStringSettings对象 

          // 每个ConnectionStringSettings对象有NameConnectionString属性 

          for (int i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++) 

          { 

            string name = ConfigurationManager.ConnectionStrings[i].Name; 

            string connectionString = ConfigurationManager.ConnectionStrings[i].ConnectionString; 

            Console.WriteLine(i.ToString() + ". " + name + " = " + connectionString); 

          } 

          //也可以如下操作,使用ConnectionStringSettings类型来进行foreach遍历 

          foreach (ConnectionStringSettings conn in ConfigurationManager.ConnectionStrings) 

          { 

            string name = conn.Name; 

            string connectionString = conn.ConnectionString; 

            Console.WriteLine(name + " = " + connectionString); 

          } 

          //直接获取conn的值 

          Console.WriteLine(" Get the value of the node named "conn":"); 

          Console.WriteLine(ConfigurationManager.ConnectionStrings["conn"].ConnectionString); 

          Console.WriteLine(""); 

      

          Console.WriteLine("AppSettings:"); 

          //AppSettingsNameValueConnection类型,使用AllKeys返回一个所有Key组成的字符串数组 

          string[] keys = ConfigurationManager.AppSettings.AllKeys; 

          for (int i = 0; i < keys.Length; i++) 

          { 

            string key = keys[i]; 

            //通过Key来索引Value 

            string value = ConfigurationManager.AppSettings[key]; 

            Console.WriteLine(i.ToString() + ". " + key + " = " + value); 

          } 

          // 没有NameValuePair这样的对象,所以无法使用foreach来进行循环 

      

          //直接获取key1的值 

          Console.WriteLine(" Get the value of the key named "key1":"); 

          Console.WriteLine(ConfigurationManager.AppSettings["key1"]); 

      

          //pause the process 

          Console.ReadKey(); 

        } 

      } 

    }

    上面演示了如何遍历<connectionStrings>,如何遍历<appSettings>,如何单独获取某一个connectionString,如何单独获取某个appSetting。大家可以收藏一下,以便以后使用时参考。

    App.config和Web.config的语法格式是完全一样的,只是一个用户WinForm程序,一个用于Web程序。

    App.config在编译之后,将会被编译到binDebug目录下,文件名为“应用程序名.exe.config”。
      
    关于C#中App.config文件的使用,本文就介绍这么多,希望对您有所帮助,谢谢!

  • 相关阅读:
    PHP操作二进制字节数据
    Linux端口转发-rinted工具部署、配置、使用
    Netty学习(八)-Netty的心跳机制
    Navicat Premium 12破解方法
    App界面设计规范-字体规范
    PHP 扩展开发之Zephir
    rinetd 一个linux下的端口转发工具
    windows node版本管理工具nvm
    vue cli 常见问题汇总
    监听微信返回
  • 原文地址:https://www.cnblogs.com/wlming/p/5165423.html
Copyright © 2011-2022 走看看