- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要一个应用程序的一些设置,该设置将在计算机的所有用户之间共享,但也可以在运行时更改。那个接缝简单,但是根据Application Settings MSDN article , 非此即彼。
There are two types of application settings, based on scope:
Application-scoped settings can be used for information such as a URL for a Web service or a database connection string. These values are associated with the application. Therefore, users cannot change them at run time.
User-scoped settings can be used for information such as persisting the last position of a form or a font preference. Users can change these values at run time.
我可以编写代码来编辑 app.config XML 文件,但由于它位于程序目录中,因此它在 Windows 7 下受到保护。因此,如果不提升程序或使用 NTFS 权限,这是不可能的。
所以我需要将配置文件写入一个普通文件夹,如 System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
。
但这是一个相当普遍的要求!
所以,我想知道是否有一种简单的方法可以实现这一目标而无需重新发明轮子,或者我是否必须编写自己的设置管理器。
最佳答案
阅读此处的答案并使用 ConfigurationManager.Open
方法后,我得到了以下结果:
string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MyApp", "MyApp.config");
Configuration MyAppConfig = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap { ExeConfigFilename = path }, ConfigurationUserLevel.None);
好的部分是文件不必存在,如果您对其调用 Save()
,它将为您创建文件夹和文件。 AppSettings["key"]
没有用,所以我不得不使用
MyAppConfig.AppSettings.Settings["key"].Value
读取和写入现有值
MyAppConfig.AppSettings.Settings.Add("key", value)
添加新值。
关于c# - 如何将应用程序设置共享给所有可以在运行时更改的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16306605/
我是一名优秀的程序员,十分优秀!