C# 如何指定应用程序的名称';WPF中的s App.config文件?
这是非常令人沮丧的。。。我可以设置Windows窗体应用程序的配置文件。考虑这一点: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
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)。这似乎同时起作用。