string filename = System.Windows.Forms.Application.ExecutablePath + ".config";
XmlDocument doc = new XmlDocument();
doc.Load(filename);
XmlElement element = doc.SelectSingleNode("//appSettings/add[@key='Lang']") as XmlElement;
if (element == null)
{
var appElement = doc.SelectSingleNode("//appSettings");
if (appElement == null)
{
appElement = doc.CreateElement("appSettings");
doc.SelectSingleNode("/configuration").AppendChild(appElement);
}
element = doc.CreateElement("add");
var key = doc.CreateAttribute("key");
key.Value = "Lang";
var value = doc.CreateAttribute("value");
element.AppendChild(key);
element.AppendChild(value);
appElement.AppendChild(element);
}
element.GetAttributeNode("value").Value = CurrentLang.CultureInfo.Name;
doc.Save(filename);
var configDir = new DirectoryInfo("./Config/Language/ServiceUri");
FileInfo[] configFiles = configDir.Exists ? configDir.GetFiles() : new FileInfo[0];
FileInfo item = null;
if (languageName == "中文")
{
item = configFiles.FirstOrDefault(f => System.IO.Path.GetFileNameWithoutExtension(f.Name) == "serviceuri_zh");
}
else
{
item = configFiles.FirstOrDefault(f => System.IO.Path.GetFileNameWithoutExtension(f.Name) == "serviceuri_us");
}
if (item != null)
{
var fileName = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName + ".config");
File.Copy(item.FullName, fileName, true);
ConfigurationManager.RefreshSection("system.serviceModel");
ConfigurationManager.RefreshSection("appSettings");
}