1

这非常令人沮丧......我可以很好地设置 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 中动态设置我的配置文件的位置?

帮助!谢谢!

4

2 回答 2

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~

于 2009-10-22T22:08:05.880 回答
0

这是在服务端还是客户端?如果在服务端,通常情况是服务在自己的 AppDomain 中运行,因此如果您设置 AppDomain.CurrentDomain.SetData(...) 它将不适用于服务配置。

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

于 2009-04-26T18:35:52.063 回答