在c#中处理多个配置文件

时间:2014-10-01 10:35:44

标签: c# config

所以基本上我有一个简单的应用程序来读取数据库,我有一个配置文件,其中包含数据库的路径。我有多个数据库,因此我想拥有多个配置文件,我可以使用这个应用程序。是否可以让变量定义要使用的配置。我想定义配置以用作命令行参数。

例如。 myapp.exe app1.config

OR

例如。 myapp.exe app2.config

定义参数后,应用程序应相应地选择配置文件

这可能吗?

3 个答案:

答案 0 :(得分:1)

using System;
using System.Configuration;
using System.Windows.Forms;

namespace MultipleConfig
{
    /* Note :- Create multiple config files.
    */

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            System.Configuration.ExeConfigurationFileMap configFile = new System.Configuration.ExeConfigurationFileMap();
            configFile.ExeConfigFilename = "MyConfig.config";

            Configuration config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(configFile, System.Configuration.ConfigurationUserLevel.None);
            KeyValueConfigurationCollection settings = config.AppSettings.Settings;

            string fName = ConfigurationManager.AppSettings["FirstName"];
            string lName = settings["LastName"].Value;
            string country = settings["Country"].Value;

            MessageBox.Show(String.Concat(fName, " ", lName, "\nCountry ", country), this.Text);
        }
    }
}

答案 1 :(得分:0)

您可以使用ConfigurationManager.OpenMappedExeConfiguration方法,该方法允许您读取在命令行参数中传递的配置文件。 Here您将找到更详细的说明和示例。

所以有可能,但根据我的说法,更方便的选择是在一个(默认)配置文件中有多个配置部分,并根据命令行参数选择正确的部分。

答案 2 :(得分:0)

我在.NET之前使用了自己的配置文件机制,没有什么能阻止你编写自己的代码。

你只能有一个活动的app.config但是,你可以拥有任意数量的文件,并编写自己的阅读程序。只需要一些代码页来加载它们并通过静态变量使它们可用。