有没有办法在app.config文件中写入有关端点的信息?
实际上我想从一个app.config文件中读取<service>
标签,并希望将其写在其他app.config文件的<Services>
标签中。
请有人告诉我该怎么做?
实际上我有一个名为“WCFService.exe.config”的配置文件,我想在我的程序中阅读,所以我写的是:
string path = Path.Combine(Application.StartupPath, "WCFService.exe.config");
Configuration config = ConfigurationManager.OpenExeConfiguration(path)
ServicesSection serviceSection = ConfigurationManager.GetSection("system.serviceModel/services") as ServicesSection;
ServiceElementCollection sereleColl = serviceSection.Services;
但我在sereleColl中什么都没得到。
答案 0 :(得分:3)
您的呼叫“OpenExeConfiguration” - 这将打开当前正在执行的应用程序的配置。
您需要阅读.NET 2.0配置系统:CodeProject上有一个关于.NET配置系统的优秀3部分系列:
有一系列非常好的文章可以揭开CodeProject上的.NET 2.0配置系统的神秘面纱:
强烈推荐! Jon Rista在.NET 2.0中解释配置系统做得很好。
答案 1 :(得分:2)
我不记得怎么做了。
修改强>
要访问它,您必须添加对System.Configuration的引用。
编辑2:
更改appsettings可以这样做:
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
AppSettingsSection appSettings = config.AppSettings;
KeyValueConfigurationElement setting = appSettings.Settings["MyAppSettingsKey"];
setting.Value = "newValue";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
您可以输入以下内容来访问WCF设置:
ConfigurationSectionGroup sct = config.SectionGroups["system.serviceModel"];
希望这有帮助。
<强>注释:强>
您的代码在这里工作正常。但是,我改变了
string path = Path.Combine(Application.StartupPath, "WCFService.exe.config");
到
string path = Application.ExecutablePath;
这将使用当前运行的应用程序的配置文件。我不知道为什么你的道路不起作用。要么是这样,要么配置文件中一定有错误?