问题
I have problems with saving user settings on Mono (Ubuntu). Here is code sample:
private void Form1_Load(object sender, EventArgs e)
{
string savedText = Properties.Settings.Default.tbText.ToString();
tbInput.Text = savedText;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
string textToSave = tbInput.Text;
Properties.Settings.Default.tbText = textToSave;
Properties.Settings.Default.tbText = Properties.Settings.Default.tbText;
Properties.Settings.Default.Save();
}
But i receive only empty config like
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<userSettings />
</configuration>
I've already tried something like
Properties.Settings.Default.tbText = Properties.Settings.Default.tbText;
from here. But still get same result. How can I use settings in Mono?
回答1:
Remove line
Properties.Settings.Default.tbText = Properties.Settings.Default.tbText;
Check you application config file. Probably you have something like this:
<configuration> <configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="ExampleApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> </sectionGroup> </configSections> ... <appSettings> <add key="TestKey1" value="Test1" /> <add key="TestKey2" value="Test2" /> </appSettings> ... <userSettings> <ExampleApp.Properties.Settings> <setting name="textBox1" serializeAs="String"> <value /> </setting> </ExampleApp.Properties.Settings> </userSettings> </configuration>
Remove sectionGroup for userSettings.
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="ExampleApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> </sectionGroup>
Remove also section userSettings.
<userSettings> ... </userSettings>
Delete your local user.config. After first run it will be recreated correctly.
It should work
来源:https://stackoverflow.com/questions/37292416/mono-cant-save-user-settings