[英]How to change app.config file in window application c#
我有一個窗口應用程序,並且在其中使用了電子郵件功能,並且電子郵件設置位於app.config文件中。其內容如下
<system.net>
<mailSettings>
<smtp from="email@gmail.com">
<network host="smtp.gmail.com" port="587" userName="username" password="password" enableSsl="true" />
</smtp>
</mailSettings>
</system.net>
我想使用以上部分的編碼進行更改..我必須通過配置文件中smtp和網絡部分的編碼進行更改。
我認為您正在問如何以編程方式執行此操作?
這里有一個答案:
另外,在msdn網站上的一個很好的例子:
http://msdn.microsoft.com/zh-CN/library/system.net.mail.smtpclient.aspx
讓我知道這是否不是您要的。
編輯:一旦問題清楚就顯示答案:
如何在不使用用戶設置的情況下在運行時讀取/寫入app.config設置?
祝好運
我找到了解決方法....
FileInfo objFileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location + ".config");
XmlDocument objXmlDoc = new XmlDocument();
objXmlDoc.Load(objFileInfo.FullName);
XmlElement objElement = objXmlDoc.DocumentElement;
XmlNode objAppSettingNode = objElement.SelectSingleNode("appSettings");
foreach (XmlNode appSetting in objAppSettingNode)
{
if (appSetting.Name.Equals("add"))
{
appSetting.Attributes["value"].Value = txtEmailAddress.Text.Trim();
}
}
XmlNode objMailSettingNode = objXmlDoc.DocumentElement.SelectSingleNode("system.net/mailSettings");
if (objMailSettingNode != null)
{
foreach (XmlNode childNode in objMailSettingNode)
{
if (childNode.Name.ToLower().Equals("smtp"))
{
childNode.Attributes["from"].Value = txtEmailAddress.Text.Trim();
foreach (XmlNode networkNode in childNode)
{
if (networkNode.Name.ToLower().Equals("network"))
{
networkNode.Attributes["host"].Value = txtSmtp.Text.Trim();
networkNode.Attributes["userName"].Value = txtEmailAddress.Text.Split('@')[0].Trim();
networkNode.Attributes["password"].Value = txtPassword.Text.Trim();
networkNode.Attributes["port"].Value = txtPort.Text.Trim();
}
}
}
}
}
objXmlDoc.Save(objFileInfo.FullName);
lblErrormsg.Text = string.Empty;
this.Close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.