【问题标题】:How to Make Application.Properties.Settings public and stay that way如何公开 Application.Properties.Settings 并保持这种状态
【发布时间】:2012-08-06 02:27:33
【问题描述】:

我正在将我的应用程序设置集中到一个位置,并且我选择使用我的公共库中的设置集合来执行此操作。

我已将所有这些设置移动到它们自己的文件中,该文件使用配置源被拉入我的 app.config:

<Common.Properties.Settings configSource="config\Common.Properties.Settings.config" />

这允许我使用 Visual Studio 的“添加链接”功能在我的 Web 和测试应用程序中使用导入的配置文件覆盖默认库设置。

现在,我希望能够从我的其他库中访问所有这些很棒的设置值,并且发现我可以通过将生成的类公开来做到这一点:

文件:Common.Properties.Settings

public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase

这让我可以从我的 Web 应用程序或单元测试中访问诸如 Common.Properties.Settings.Default.MySetting 之类的内容。但是,问题是每当添加新设置时,Visual Studio 都会重新生成 Setting.settings 文件,并将 Settings 类翻转回内部:

internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase

所以我的问题是,是否有人知道如何覆盖它,或者可能建议使用宏方法或其他方法来确保在重建 Settings.settings 文件后,将此类设置为 public。

谢谢!

【问题讨论】:

标签: c# visual-studio-2010 configuration


【解决方案1】:

我假设您已经在编辑器中创建和修改了 Visual Studio 内置的设置,可以通过项目属性部分设置访问这些设置。在同一个编辑器上有一个组合框,您需要将其从内部更改为公共,它被标记为访问修饰符。

【讨论】:

  • 太棒了!非常感谢。
  • 呃,为什么我必须谷歌才能找到它?我什至没有注意到那个栏并一直在属性窗口中查看。
  • 是否有一种秘密方法也可以删除 sealed 指令,以便我可以将其用于单元测试(或至少从默认文件以外的特定文件创建对象)?
  • @TomerW 抱歉,据我所知没有。 (其他然后手动编辑生成的文件)
  • @bojingo 可能是因为它的设计很糟糕。将其添加为列会更好,这样开发人员就不会错过它
猜你喜欢
  • 2011-08-13
  • 2023-02-26
  • 2021-09-27
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
相关资源
最近更新 更多