我当前的解决方案有3个项目,带有2个app.config(一个用于常用设置,另一个用于服务设置)。截至目前,我只是创建静态类来充当访问值的中介。我这样做,所以我不必在任何地方写ConfigurationManager.AppSettings["SomeKey"]
。这可以正常工作,直到您想要从其他项目访问app.config文件。
以下是我目前正在做的事情(为简洁起见省略了所有属性)。
public class ServiceConfiguration
{
public static readonly string SyncEvery = ConfigurationManager.AppSettings["SyncEveryMinutes"];
}
如何访问位于另一个项目中的app.config文件?我想也许设置VS将文件复制到输出目录就行了但是我的配置对象仍然是空的。
答案 0 :(得分:2)
我无法想象很多很好的理由来首先阅读其他应用程序的配置,它只是打开了一堆不值得处理的蠕虫。
公开一个将项目配置的值公开为属性的类,并从消费类中访问它们。
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);
}
}
如果您有复杂的配置要求,您还可以查看custom configuration sections
答案 1 :(得分:1)
ConfigurationManager.OpenExeConfiguration可能会有所帮助: {{3P>
另外:杰森说的话 - 这通常是一个坏主意。