您的位置:首页 > 移动开发

WCF 修改App.config配置文件

2009-08-17 14:48 399 查看
using System.ServiceModel.Configuration;
using System.Text.RegularExpressions;


// 修改配置文件
private void ChanageConfig()
{
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
ConfigurationSectionGroup sct = config.SectionGroups["system.serviceModel"];
ServiceModelSectionGroup serviceModelSectionGroup = sct as ServiceModelSectionGroup;
ClientSection clientSection = serviceModelSectionGroup.Client;
foreach (ChannelEndpointElement item in clientSection.Endpoints)
{
string pattern = "://.*/";
string address = item.Address.ToString();
string replacement = string.Format("://{0}:{1}/", Global.ServerIP, Global.ServerPort);
address = Regex.Replace(address, pattern, replacement);
item.Address = new Uri(address);
}
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("system.serviceModel");
return;
/*
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ServiceModelSectionGroup serviceModelSectionGroup = ServiceModelSectionGroup.GetSectionGroup(configuration);
ClientSection clientSection = serviceModelSectionGroup.Client;

foreach(ChannelEndpointElement item in clientSection.Endpoints)
{
MessageBox.Show(item.Address.Host);

}
configuration.Save();
*/
return;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Rca.exe.config");
XmlNodeList nodeList = xmlDoc.SelectSingleNode("configuration/appSettings").ChildNodes;
foreach (XmlNode node in nodeList)
{
switch (node.Attributes["key"].InnerText.ToLower())
{
case "serverip":
node.Attributes["value"].InnerText = Global.ServerIP;
break;
case "serverport":
node.Attributes["value"].InnerText = Global.ServerPort;
break;
case "langdataid":
node.Attributes["value"].InnerText = Global.LangDataID;
break;
case "uidataid":
node.Attributes["value"].InnerText = Global.UIDataID;
break;
}
}
nodeList = xmlDoc.SelectSingleNode("configuration/system.serviceModel/client").ChildNodes;
foreach (XmlNode node in nodeList)
{
string pattern = "://.*/";
string address = node.Attributes["address"].InnerText;
string replacement = string.Format("://{0}:{1}/", Global.ServerIP, Global.ServerPort);
address = Regex.Replace(address, pattern, replacement);
node.Attributes["address"].InnerText = address;
if (node.Attributes["contract"].InnerText == "LogicCommon")
{
LogicCommonCfgName = node.Attributes["name"].InnerText;
LogicCommonAddress = node.Attributes["address"].InnerText;
}
}
xmlDoc.Save("Rca.exe.config");
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: