c# - Saving user scoped settings (ApplicationSettingsBase) -


i trying application settings save when user exits configuration form (not mainform). keep settings in memory because when open form again, have data configured still there, not save disk. filepath saving xml file to

c:\users\david_000\appdata\local[company name][project name]\1.0.0.0.

i using [userscopedsetting()] in class implements applicationsettingsbase file, should save when call,

properties.settings.default.save();  

this class uses applicationsettingsbase

public class deviceconfiguration : applicationsettingsbase {     /// <summary>     /// initializes new instance of <see cref="deviceconfiguration"/> class.     /// </summary>     public deviceconfiguration()         : base()     {         this.masterdevices = new bindinglist<device>();         this.slavedevices = new bindinglist<device>();     }      [userscopedsetting()]     [settingsserializeas(system.configuration.settingsserializeas.xml)]     public bindinglist<device> masterdevices     {                 {             return this["masterdevices"] bindinglist<device>;         }          set         {             this["masterdevices"] = value;         }     }      [userscopedsetting()]     [settingsserializeas(system.configuration.settingsserializeas.xml)]     public bindinglist<device> slavedevices     {                 {             return this["slavedevices"] bindinglist<device>;         }          set         {             this["slavedevices"] = value;         }     } } 

my bindinglist contains multiple properties , class using [serializable] attribute. when save xml file, saves this:

<?xml version="1.0" encoding="utf-8"?> <configuration>     <usersettings>         <[company.project].properties.settings>             <setting name="ipaddressbess" serializeas="string">                 <value>192.168.3.254</value>             </setting>             <setting name="portbess" serializeas="string">                 <value>504</value>             </setting>             <setting name="ipaddressinverter" serializeas="string">                 <value>192.168.3.200</value>             </setting>             <setting name="portinverter" serializeas="string">                 <value>502</value>             </setting>             <setting name="startdate" serializeas="string">                 <value>04/08/2015 08:00:00</value>             </setting>             <setting name="enddate" serializeas="string">                 <value>04/08/2015 16:00:00</value>             </setting>             <setting name="deviceconfig" serializeas="xml">                 <value />             </setting>         </[company.project].properties.settings>     </usersettings> </configuration> 

any advice on appreciated.

without good, minimal, complete code example reliably reproduces problem, impossible sure problem is.

however, based on posted, seems may misunderstand relationship between settings designer , custom applicationsettingsbase class.

in particular, properties.settings.default return instance of designer-created class named settings. calling properties.settings.default.save(); save values in object, not in other class.

if have separate class deviceconfiguration want saved (as seem in code posted), need handle explicitly. having instance of subclass of applicationsettingsbase won't it. need call save() method on custom subclass yourself.

see how to: create application settings on msdn.


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -