C# 修改[appname].exe.config

C# 修改[appname].exe.config,c#,configurationmanager,C#,Configurationmanager,在广泛研究ConfigurationManager类之后,我决定只为我的应用程序所需的单个用户定义参数创建/读取/写入我自己的文件(永远不会有多个选项-任务非常具体)。在我作为一名新的C#/.NET开发人员(来自PHP)寻求“做正确的事情”的过程中,我希望正确使用ConfigurationManager。这不可能像我所说的那么难-我说我花了几个小时试图通过ConfigurationManager处理设置,而我花了大约5分钟来编写附带的代码,我是尽可能诚实的。在我看来,这个任务是许多应用程序都能完

在广泛研究ConfigurationManager类之后,我决定只为我的应用程序所需的单个用户定义参数创建/读取/写入我自己的文件(永远不会有多个选项-任务非常具体)。在我作为一名新的C#/.NET开发人员(来自PHP)寻求“做正确的事情”的过程中,我希望正确使用ConfigurationManager。这不可能像我所说的那么难-我说我花了几个小时试图通过ConfigurationManager处理设置,而我花了大约5分钟来编写附带的代码,我是尽可能诚实的。在我看来,这个任务是许多应用程序都能完成的,但我还没有找到一个简洁的例子。并不是说我没有找到任何示例(以及一些类似任务的参考),而是在MSDN上,它看起来确实有很多符合我需求的代码。无论如何

“我的应用”要求用户指定存储应用生成的文件的路径。我的实现思想就是让用户从工具条中选择“选项”设置,选择文件将存储到的文件夹,并将该路径保存到一个文件([appname.exe.config],如果我使用的是ConfigurationManager)。我选择了这种老派的方法:

    private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
    {
        DialogResult result = saveFileLocation.ShowDialog(); 

        string selectedPath = saveFileLocation.SelectedPath;  

        System.IO.StreamWriter file = new System.IO.StreamWriter("config.ini");
        file.WriteLine(selectedPath);
        file.Close();

     }
尽管我将为异常添加try/catch逻辑,但有没有令人信服的理由不这样处理我的需求?当用户处理转换大量文件的请求时,我需要读取此文件一次

我知道MSDN示例是为了展示类的灵活性,但是哇,对我来说,这似乎太过分了。我不想给人留下需要复制/粘贴示例来完成任务的印象,但这似乎是一项非常常见的任务,因此,我本可以通过ConfigurationManager找到更简单的示例来实现我的需求


提前感谢您的输入。

解决方案如下:祝您好运!仅供参考,上述链接仅在您希望保存应用程序范围设置时适用。对于用户范围设置,解决方案要简单得多。只需通过项目的“设置”选项卡创建所需的设置,然后在进行更改后调用
Properties.settings.Default.Save()
。用户范围的设置保存在当前用户的配置文件中,不会覆盖存储在应用程序可执行文件旁边的默认设置。感谢您的评论。当我试图修改代码时,我实际上引用了那个页面。当我读到“…但是,设置将不会被保存”时,我将其解释为我查错了树。@RogerN-当你说“…通过项目的设置选项卡”时,你是在对[appname].exe.config中的某个部分说话,还是在说VS designer((应用程序设置)-位置)中的实际选项卡?如:,在VS的“位置”字段中放置一个默认位置,然后使用Properties.Settings.default.Save动态更改该位置?如果是后者,那就太完美了……我必须先完成一个小片段,然后才能进行拍摄。我指的是Visual Studio项目属性中的“实际设置”选项卡。您在其中添加的任何用户范围设置都可以动态更改,并使用Properties.settings.Default.Save保存。更改将序列化为当前用户配置文件中的XML文件;确切的文件夹名称基于AssemblyInfo.cs中定义的程序集元数据。