• [转]Web 下配置文件信息的读写


    原文作者:蝈蝈俊.net 
    ------------------------------------------------------------------------------------------------------------
    注:这算是对上篇".net 下配置文件的操作"的补充,这里借用了上面的已有示例代码。
    上篇 Blog  在  http://blog.joycode.com/ghj/archive/2006/02/10/71293.aspx

    WEB 下配置文件的读写跟 客户端应用程序配置文件 下 对配置文件的读写,几乎完全是一样的。只不过 , web.config 有多重继承的问题。
    子网站目录下如果没配置,会继承自上级目录。依次类推,这是一个多层继承的问题。

    同样是上篇 Blog 的配置类 ,我们下面来看看 Web 下的读写操作
    using System.Web.Configuration;

    写操作:
    卸载掉原来节,新增节来写操作
            ConfigDataClass configData = new ConfigDataClass();
            configData.ID = 100;
            configData.Name = "我是谁?";
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            config.Sections.Remove("SettingsData");
            config.Sections.Add("SettingsData", configData);
            config.Save();

    在原来节基础上的修改操作
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            ConfigDataClass configData = config.GetSection("SettingsData") as ConfigDataClass;
            configData.ID = 1003;
            configData.Name = "我";
            config.Save();

    读操作:
            ConfigDataClass configData = ConfigurationManager.GetSection("SettingsData") as ConfigDataClass;
            if (configData == null) return string.Empty;
            return configData.ToString();

    从上面我们可以看到
    除了
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
    这一行代码 和 引用的 名称空间  using System.Web.Configuration; 不同外,Web 程序跟 客户端应用程序完全是一样的代码。

    不论是 Web 程序,还是 客户端应用程序,有时候,一个配置文件是不够的,我们可能需要多个配置文件,下面我们就看看如何对其他配置文件当系统默认的配置文件来读写。
    注意,我们这时候用的是 System.Configuration.Configuration 类,不论 Web 程序,还是 客户端应用程序 都可以用这个类。

    更新指定的另外配置文件
            ConfigurationFileMap fileMap = new ConfigurationFileMap();
            fileMap.MachineConfigFilename = @"D:\My2005Codes\WebTestCode\TestWEBSite\aa.config";
            System.Configuration.Configuration config = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);

            ConfigDataClass configData = new ConfigDataClass();
            configData.ID = 303;
            configData.Name = "CSDN?";

            config.Sections.Remove("SettingsData");
            config.Sections.Add("SettingsData", configData);
            config.Save();

    在写操作之前,这个配置文件可以没有上述配置节,但是必须有下面几行信息,否则就会报没有根节点。
    <?xml version="1.0"?>
    <configuration>
    </configuration>

    原文
    完成写操作后,这个 aa.config 文件就变成了

    <?xml version="1.0"?>
    <configuration>
        <configSections>
            <section name="SettingsData" type="ConfigDataClass, App_Code.yltp08ba, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
        </configSections>
        <SettingsData id="303" name="CSDN?" />
    </configuration>

    读取指定的另外配置文件

            ConfigurationFileMap fileMap = new ConfigurationFileMap();
            fileMap.MachineConfigFilename = @"D:\My2005Codes\WebTestCode\TestWEBSite\aa.config";
            System.Configuration.Configuration config = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);

            ConfigDataClass configData = config.GetSection("SettingsData") as ConfigDataClass;
            if (configData == null) return string.Empty;
            return configData.ToString();


    如果是 客户端应用程序,你还可以 通过使用 System.Configuration.ConfigurationManager.OpenMappedExeConfiguration  读写多个客户端应用程序默认配置文件。

    当然这些功能完全可以用类的序列化,反序列化来用,但是既然有这个功能,干么不用呢?

  • 相关阅读:
    fastcgi与cgi的区别
    oracle启动脚本
    oracle表空间大小的限制和DB_BLOCK_SIZE的概念
    静默安装Oracle11G
    ls 指令的介绍
    cronolog日志切割catalina.out
    oracle expdp自动备份脚本
    tomcat开启自启动
    oracle listener.ora文件配置
    CentOS 7.0 上安装和配置 VNC 服务器
  • 原文地址:https://www.cnblogs.com/jintan/p/741179.html
Copyright © 2020-2023  润新知