gpt4 book ai didi

c# - 如何将应用程序设置共享给所有可以在运行时更改的用户

转载 作者:太空狗 更新时间:2023-10-29 18:29:23 28 4
gpt4 key购买 nike

我需要一个应用程序的一些设置,该设置将在计算机的所有用户之间共享,但也可以在运行时更改。那个接缝简单,但是根据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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com