当前位置: 首页 > 编程语言 > C#

运行时新建设置,重启后读取分享

时间:2023-04-10 21:49:04 C#

运行时新建设置,重启后读取我想存储用户设备。它们是在运行时创建的,应在重新启动应用程序后读取。privatevoidMainForm_FormClosing(objectsender,FormClosingEventArgse){varproperty=newSettingsProperty("Testname");property.DefaultValue="测试值";设置.默认.属性.添加(属性);设置.默认.保存();此时,设置已存储,我可以访问它。重新启动应用程序后,新创建的设置将消失:publicMainForm(){InitializeComponent();foreach(Settings.Default.Properties中的SettingsProperty属性){//在不存在之前在运行时创建的设置}}试试这个可行:Settings.Default.Reload();对结果没有影响。我也尝试过这里描述的其他事情,但没有一个对我有用。可能有点晚了,但对于其他人来说,有2个部分。保存新的UserSetting在启动时从userConfig.xml重新加载我根据其他答案为ApplicationSettingsBase创建了这个扩展publicstaticvoidAdd(thisApplicationSettingsBasesettings,stringpropertyName,Tval){varp=newSettingsProperty(propertyName){PropertyType=typeof(T),Provider=settings.Providers["LocalFileSettingsProvider"],SerializeAs=SettingsSerializeAs.Xml};p.Attributes.Add(typeof(UserScopedSettingAttribute),newUserScopedSettingAttribute());设置.Properties.Add(p);设置.Reload();//如果没有从userConfig.xml中加载任何值,则最终使用新值设置值varitem=settings[propertyName];if(item==null){settings[propertyName]=val;设置.保存();这将使Settings["MyKey"]工作,但是当您重新启动时,不会加载设置,但是userConfig.xml具有新值(如果您调用Settings.Save())reload就是重新执行Add,比如if(settings.Properties.Cast().All(s=>s.Name!=propertyName)){settings.Add("MyKey",0);};Add的工作方式是如果没有从userConfig.xml中加载值,它只是将MyKey设置为0以上是C#学习教程:在运行时创建新设置,重启后阅读分享的全部内容,如果对大家有帮助的话有用,需要多了解C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: