c# - 适用于所有项目的应用程序范围设置

标签 c# settings

我有一个包含 3 个项目的解决方案,每个项目都需要访问某些设置。我正在寻找一种方法,使这些设置值可用于来自一个不同来源的任何项目。我不能使用 .Config 文件,因为它与该特定项目相关。

我可以使用数据库,但被告知这不是好的做法(没有理由)

有什么想法吗?

最佳答案

你可以这样做:

  • 创建一个 solution.config在你的解决方案文件夹中
  • 在每个项目的 app.config ,将其添加到您的 <appSettings>节点:

    <appSettings file="solution.config">
      ....
    </appSettings>
    

您必须将符号链接(symbolic link)放到您常用的 solution.config在每个项目文件夹中 - 但您可以拥有一个在项目之间共享的物理文件。

<appSettings> node 是唯一允许这种“累积”设置的节点——那些来自 file= 中指定的文件的设置。将添加到您的应用程序设置中,但可能会被您在 app.config 中明确指定的任何内容覆盖.

另一方面,是的,您当然可以使用数据库。在我们的大多数项目中,我们也这样做,因为我们通常可以访问数据库,但不能访问客户端服务器计算机中的文件系统。我不明白为什么这一定是一件坏事 - 我们在表格中有 DEV、TEST 和 PROD 的设置 - 所以你可以将所有设置放在一个地方 - 我们会在需要时选择我们需要的设置。工作得很好——当然,一些设置,比如数据库的连接字符串不能存储在那里——但我们的大部分配置信息是。再说一次:我真的看不出有任何理由说明这本身就是一个糟糕的选择 - 所以除非你的消息来源可以用一些事实和理由来支持他/她的陈述,否则我会忽略它。

关于c# - 适用于所有项目的应用程序范围设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150297/

相关文章:

proxy - 批处理/BAT - 使用批处理/BAT 文件更改代理设置

c# - 如何从 javascript 调用 asp.net .cs 页面的方法?

c# - 如何使用自由文本搜索查询 Google Calendar API

c# - 如何实例化新的结构对象?

django - 用于 Django 部署的 Azure Web 应用程序不起作用

android - 监控 Android 系统设置值

c# - 将 Mvvm Light 更新到版本 5 后,我需要做哪些更改才能使 RelayCommand CanExecute() 工作?

c# - WriteableBitmap 的异步操作

eclipse - Eclipse快捷键CTRL + M行为

c# - 自定义 app.config 部分 C#