【发布时间】:2025-11-21 23:00:01
【问题描述】:
我们的应用程序基本上会启动多个实例,但它们需要有单独的用户设置。我们目前为此使用“用户设置”,它适用于单个实例(每个 Windows 用户),但我们希望能够通过命令行传入的设置路径启动多个实例。有没有办法通过内置的 .NET 设置来做到这一点,还是我们必须自己动手?
【问题讨论】:
标签: .net multiple-instances settings
我们的应用程序基本上会启动多个实例,但它们需要有单独的用户设置。我们目前为此使用“用户设置”,它适用于单个实例(每个 Windows 用户),但我们希望能够通过命令行传入的设置路径启动多个实例。有没有办法通过内置的 .NET 设置来做到这一点,还是我们必须自己动手?
【问题讨论】:
标签: .net multiple-instances settings
LocalFileSettingsProvider 类,一个使用用户设置管理文件的类,是完全不可能调整的。不管是谁写的,一定是因为安全问题而瘫痪了。也许不是没有道理的。
如果您想坚持使用 System.Configuration,那么您需要实现自己的提供程序。可能最好的方法是从RegistrySettingsProvider sample 开始。它不会帮助您正确处理文件,但至少您将有一些东西可以构建。多看几眼 Reflector 会有所帮助。
【讨论】:
我建议开发一个可以处理应用设置并接受文件名的类。我必须为需要应用程序设置的 DLL 执行此操作,如果您想将设置存储在非本地位置(例如网络上的单个位置),它也会有所帮助。
它将为您提供更多的灵活性 - 绝对值得投资!
【讨论】:
.Net 有一个配置提供程序 API。 app.config 只是该 API 的预定义实现。您应该考虑使用 API 来扩展内置 API,或创建自己的 API。
【讨论】:
我建议将配置信息存储在数据库中并根据用户进行读取。任何情况下您都必须维护用户特定信息的不同副本。加载从数据库读取的应用程序并缓存所有设置。
用于检索信息的用户用户个性化和配置文件 API。更新数据库中的信息非常容易,而不是处理位于用户系统中的文件。
【讨论】:
有一个有趣的CodeProject article 有一个自定义设置提供程序。您只需对代码稍作调整,即可将设置保存并加载到您提供的文件位置。
【讨论】: