在windows应用程序中嵌入电子邮件设置

本文关键字:电子邮件 设置 windows 应用程序 | 更新日期: 2023-09-27 18:19:04

我想知道是否有办法嵌入电子邮件设置在Windows应用程序,然后存储在app. config文件。的设置将是静态的,因此用户不必在运行期间更改它时间。据我所知,我们可以把它保存在资源文件作为字符串,但是我如何访问我的代码中的设置?

代码:

string st = Properties.Resources.cubemail;
//SmtpSection smtpSection = ConfigurationManager.GetSection(st) as SmtpSection;
MailSettingsSectionGroup mMailSettings = 
    ConfigurationManager.GetSection(st) as MailSettingsSectionGroup;
mail.From = new MailAddress(mMailSettings.Smtp.From);
smtp.Host = mMailSettings.Smtp.Network.Host;
smtp.Port = mMailSettings.Smtp.Network.Port;
smtp.UseDefaultCredentials = mMailSettings.Smtp.Network.DefaultCredentials;
smtp.Credentials = new System.Net.NetworkCredential(
    mMailSettings.Smtp.Network.UserName, 
    mMailSettings.Smtp.Network.Password);

在windows应用程序中嵌入电子邮件设置

在您的项目中添加xml文件并将该文件标记为嵌入式资源,您可以将所有设置放在那里

使用XML文档存储电子邮件设置,您可以在记事本中打开/更新XML文档,如文本编辑器或使用Linq to XML读取或更新。

编辑:

如果你已经将XML文档标记为嵌入式资源,那么你可以通过Assembly.GetManifestResourceStream()方法读取它。

我假设xml文档的名称是Test.xml,并在WindowApp命名空间下创建。

Test.xml

<?xml version="1.0" encoding="utf-8" ?>
<MySettings>
  <host>something.com</host>
</MySettings>

读取资源,

Assembly assembly = Assembly.GetExecutingAssembly();
XDocument doc= XDocument.Load(assembly.GetManifestResourceStream("WindowApp.Test.xml"));
string host=doc.Root.Element("host").Value;