相关疑难解决方法(0)

ConfigurationManager.AppSettings - 如何修改和保存?

这可能听起来太琐事了,而且我做了与文章中建议的相同的事情,但它没有按预期工作.希望有人能指出我正确的方向.

我想保存每个AppSettings的用户设置.

一旦Winform关闭,我触发:

conf.Configuration config = 
           ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

if (ConfigurationManager.AppSettings["IntegrateWithPerforce"] != null)
    ConfigurationManager.AppSettings["IntegrateWithPerforce"] = 
                                           e.Payload.IntegrateCheckBox.ToString();
else
    config.AppSettings.Settings.Add("IntegrateWithPerforce", 
                                          e.Payload.IntegrateCheckBox.ToString());

config.Save(ConfigurationSaveMode.Modified);
Run Code Online (Sandbox Code Playgroud)

因此,当条目第一次不存在时,它只会创建它,否则它将修改现有条目.然而,这并不节省.

1)我做错了什么?

2)我希望在哪里再次保存应用程序设置的用户设置?是在Debug文件夹中还是在C:\ Documents and Settings\USERNAME\Local Settings\Application Data文件夹中?

.net c# settings configurationmanager appsettings

73
推荐指数
7
解决办法
21万
查看次数

在app.config文件中写入值

任何人都可以请帮助我如何使用c#在app.config文件中设置/存储值,是否可以?

c#

49
推荐指数
7
解决办法
12万
查看次数

动态更改app.config文件中的值

我想修改app.config中appSetting部分的值.所以我写道,

Console.WriteLine(ConfigurationManager.AppSettings["name"]);
Console.Read();
Configuration config=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
config.AppSettings.Settings["name"].Value = "raja";       
config.Save(ConfigurationSaveMode.Modified);  
ConfigurationManager.RefreshSection("appSettings");
Console.WriteLine(ConfigurationManager.AppSettings["name"]);
Console.Read();
Run Code Online (Sandbox Code Playgroud)

执行上面的代码后,我验证了app.config是否更改了"name"元素的值.但没有变化.

我的代码出了什么问题?或者还有其他方法吗?

.net c#

24
推荐指数
4
解决办法
9万
查看次数

在 C# 中读写 app.config

我知道app.config这个论坛中有很多参考资料,但我在这里发布这个问题,因为我认为我的问题非常直接。

我的长app.config这样...

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="MySection.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="MySection.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    <userSettings>
        <MySection.Properties.Settings>
            <setting name="DEVICE_ID_VERSION" serializeAs="String">
                <value>1.0.0.0</value>
            </setting>
            <setting name="DEVICE_ID_ID" serializeAs="String">
                <value>0000 0001</value>
            </setting>
        </MySection.Properties.Settings>
    </userSettings>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="PInvoke" publicKeyToken="83380E73B2486719" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.19.0" newVersion="3.0.19.0"/>
            </dependentAssembly>
            <dependentAssembly> …
Run Code Online (Sandbox Code Playgroud)

c# app-config

5
推荐指数
1
解决办法
2万
查看次数

如何在控制台应用程序中将值永久写入 app.config 文件?

在控制台应用程序项目中,我尝试将值写入 app.config 文件并将其永久保存,但只能将其保存在内存中。我已经尝试了在 app.config 文件中写入值中的所有解决方案,但没有一个对我有用。

有什么想法可以使改变永久化吗?

应用程序配置文件:

<appSettings>
    <add key="test" value="123456" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

具有两种仅将值保存到内存的方法的类:

public static class ConfigurationHelper
{

    public static void SetSetting(string key, string value)
    {
        Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        configuration.AppSettings.Settings[key].Value = value;
        configuration.Save(ConfigurationSaveMode.Modified);
        ConfigurationManager.RefreshSection("appSettings");
    }


    public static void SetSetting2(string key, string value)
    {
        Configuration configuration = ConfigurationManager.
            OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
        configuration.AppSettings.Settings[key].Value = value;
        configuration.Save();
        ConfigurationManager.RefreshSection("appSettings");
    }

}
Run Code Online (Sandbox Code Playgroud)

写出更改的简单测试,但在重建项目或在记事本中打开 app.config 时,更改不会保存:

[Test]
public void FirstTest()
{
    Console.WriteLine("Value before: " + ConfigurationHelper.Get<string>("test"));
    ConfigurationHelper.SetSetting2("test", "NewValue");
    Console.WriteLine("Value after: " + ConfigurationHelper.Get<string>("test"));
}
Run Code Online (Sandbox Code Playgroud)

c# app-config console-application

3
推荐指数
1
解决办法
6209
查看次数