Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何指定应用程序的名称';WPF中的s App.config文件?_C#_Wpf_Wcf_App Config - Fatal编程技术网

C# 如何指定应用程序的名称';WPF中的s App.config文件?

C# 如何指定应用程序的名称';WPF中的s App.config文件?,c#,wpf,wcf,app-config,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.Co

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


救命啊!谢谢

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


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

您应该能够按照以下方式进行操作:

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~

不,在客户端。我发现我可以将客户端应用程序的app.config文件指向相同的外部文件(appConfig、binding和client都使用“configSource”属性指向SharedAppConfig.config、SharedBinding.config和SharedClient.config)。这似乎同时起作用。