Web 下設定檔資訊的讀寫

來源:互聯網
上載者:User

 

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  讀寫多個用戶端應用程式預設設定檔。

當然這些功能完全可以用類的序列化,還原序列化來用,但是既然有這個功能,幹麼不用呢?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.