如何在WPF中指定应用程序的App.config文件的名称?

时间:2009-04-23 19:10:08

标签: c# wpf wcf app-config

这非常令人沮丧......我可以为Windows窗体应用程序设置配置文件。考虑一下:

public static void Main(){
    AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"SharedAppConfig.config");
    //do other things
}

但是,在WPF应用程序中,这似乎不起作用!如果我设置此值,则AppDomain.CurrentDomain.SetupInformation.ConfigurationFile属性的值是正确的,但在调试时对该配置文件的任何调用都不会产生任何结果。我需要在应用程序之间共享App.config中的WCF配置设置,因此这是我提出的解决方案。是否可以在WPF中动态设置配置文件的位置?

帮助!谢谢!

2 个答案:

答案 0 :(得分:2)

你应该能够按照以下方式做点什么:

using System.Configuration;

public class TryThis
{
    Configuration config = ConfigurationManager.OpenExeConfiguration("C:\PathTo\app.exe");

    public static void Main()
    {
        // Get something from the config to test.
        string test = config.AppSettings.Settings["TestSetting"].Value;

        // Set a value in the config file.
        config.AppSettings.Settings["TestSetting"].Value = test;

        // Save the changes to disk.
        config.Save(ConfigurationSaveMode.Modified);
    }
}

注意:这将尝试在C:\ PathTo中打开名为app.exe.config的文件。这还要求文件存在于名为“app.exe”的同一路径中。 “app.exe”文件可以只是一个空文件。对于你的情况,我几乎会创建一个共享的“Config.dll”库来处理配置文件。

〜的md5sum〜

答案 1 :(得分:0)

这是在服务端还是客户端?如果在服务端,通常情况下该服务在其自己的AppDomain中运行,那么如果您设置AppDomain.CurrentDomain.SetData(...),它将不会应用于服务配置。

我不完全确定如何解决这个问题,但您应该能够通过实施自己的ServiceHost来控制服务的配置。