我試圖使用ConfigurationManager將用戶設置保存到配置文件。如何通過ConfigurationManager寫入User.Config文件?
我想將這些設置的範圍僅限於用戶,因爲如果沒有管理員權限,應用程序更改無法保存在Vista/Win 7上。
這似乎讓我看到用戶的配置,它似乎保存在Win 7中([Drive]:\ Users \ [Username] \ AppData \ Local \ [ApplicationName] \ [AssemblyName] [hash] \ [版\)
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
每當我嘗試在所有保存的任何更改這個配置我得到這個異常:
InnerException: System.InvalidOperationException
Message="ConfigurationSection properties cannot be edited when locked."
Source="System.Configuration"
StackTrace:
at System.Configuration.SectionInformation.VerifyIsEditable()
at System.Configuration.MgmtConfigurationRecord.GetConfigDefinitionUpdates(Boolean requireUpdates, ConfigurationSaveMode saveMode, Boolean forceSaveAll, ConfigDefinitionUpdates& definitionUpdates, ArrayList& configSourceUpdates)
我曾嘗試添加自定義的ConfigurationSection這個配置。我曾嘗試添加到AppSettingsSection。每當我打電話給config.Save()
它就會拋出上面的異常。
任何想法?
我嘗試通過Project-> Settings設計器使用ApplicationSettingsBase類,但它似乎沒有保存自定義類型。我希望能夠保存自定義類型的功能。
原來你可以使用自定義類型與項目 - >設置設計器。它們不會在類型對話框中列出它們,但是如果您鍵入正確的名稱/名稱空間,則可以使用任何您想要的類型。類型應該是XmlSerializable或可以使用TypeConverter轉換爲字符串或從字符串轉換。 – 2011-05-11 16:48:40