Properties.Settings.Default的数据在哪里保存?
在我的WPF应用程序中,我单击解决scheme资源pipe理器中的Settings.settings ,然后input具有User范围的StringCollectionvariables:
替代文字http://i45.tinypic.com/24xdmir.png
在我的app.config中,我看到他们被保存在那里:
<userSettings> <TestSettings.Properties.Settings> <setting name="Paths" serializeAs="Xml"> <value> <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <string>one</string> <string>two</string> <string>three</string> <string>four</string> <string>five</string> <string>six</string> <string>seven</string> </ArrayOfString> </value> </setting> </TestSettings.Properties.Settings> </userSettings>
然后我运行我的应用程序,并与此代码:
StringCollection paths = Properties.Settings.Default.Paths; Properties.Settings.Default.Paths.Add("added in code"); Properties.Settings.Default.Save(); foreach (var path in paths) { System.Console.WriteLine(path); }
这给了我这个输出 :
one two three four five six seven added in code
我再次运行该应用程序 ,它给了我这个输出:
one two three four five six seven added in code added in code
但是我再次看看我的app.config ,它仍然具有原始值 :
<userSettings> <TestSettings.Properties.Settings> <setting name="Paths" serializeAs="Xml"> <value> <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <string>one</string> <string>two</string> <string>three</string> <string>four</string> <string>five</string> <string>six</string> <string>seven</string> </ArrayOfString> </value> </setting> </TestSettings.Properties.Settings> </userSettings>
应用程序添加的值在哪里被保存?
由于您select了用户范围,因此将其保存在每个用户configuration文件目录中,更具体地说,保存在名为user.config
文件中的用户configuration文件的AppData
文件夹中。
完整path取决于应用程序。
在没有漫游configuration文件的Windows 7和名为Example.Settings.CustomClass
的Windows窗体应用程序中,我得到以下文件夹:
C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0
另外请注意,考虑到应用程序的版本,保存它们时, App.config
中存储的值是新用户的默认值。