配置多项目访问策略

本文关键字:策略 访问 项目 配置 | 更新日期: 2023-09-27 18:12:58

我目前的解决方案有3个项目,2个app.config(一个用于公共设置,另一个用于服务设置)。到目前为止,我只是创建静态类来充当访问值的中介。这样我就不用到处写ConfigurationManager.AppSettings["SomeKey"]了。除非你想从另一个项目访问app.config文件,否则这个方法可以正常工作。

这是我目前正在做的(为简洁起见省略了所有属性)。

public class ServiceConfiguration
{
    public static readonly string SyncEvery = ConfigurationManager.AppSettings["SyncEveryMinutes"];
}

我如何访问位于另一个项目的app.config文件?我想也许设置VS复制文件到输出目录会做的伎俩,但我的配置对象仍然是空的。

配置多项目访问策略

我无法想象有多少好的理由去阅读另一个应用程序的配置,它只是打开了一个不值得处理的蠕虫。

公开一个类,将项目的配置值公开为属性,并从消费类中访问它们。

public class FirstProjectClass 
{
  public static int SyncEveryMinutes
  {
      get { return (int)ConfigurationManager.AppSetting["SyncEveryMinutes"] };
  }
}

public class SecondProjectClass
{
  public void ShowConfigedValue()
  {
      Console.Writeline("Syncing every {0} minutes", FirstProjectClass.SyncEveryMinutes);
  }
}

如果你有复杂的配置要求,你也可以查看自定义配置章节

ConfigurationManager。openexecconfiguration可以提供帮助:http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.openexeconfiguration.aspx