繁体   English   中英

如何通过WCF Web服务序列化和发送MailMessage?

[英]How can serialize and send a MailMessage over a WCF Web Service?

我想将MailMessage作为参数传递给WCF Web服务。 问题是MailMessage不可序列化,并且其许多属性(例如MailAddress)也无法序列化。 如何序列化?

我已经看到了通过将其用作包装类中的属性来对其进行序列化的教程 ,但这对我没有帮助我通过WCF发送它,因为MailMessage属性未显示在客户端(因为它不可序列化) 。 我不想只发送基本的字符串值(到,从,正文)。 我想发送整个MailMessage及其所有属性。 我怎样才能做到这一点?

更新:

我认为使用Web服务并序列化MailMessage类根本不值得。 序列化类确实起作用了,但是WCF客户端/消费者上没有许多其方法/构造函数。 因此,我不得不重新编写代码以在客户端从常规类(例如MailMessage)转换为序列化类(例如SerializedMailMessage)。

我决定使用EmailHelper创建一个类库,并使用调用应用程序的配置来确定SMTP设置。

SmtpSection smtpConfig = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;
if (smtpConfig != null) {
    // extract values to your SmtpClient
}

我必须制作MailMessage类的可序列化版本,并为其每个属性(例如MailAddress,Attachment ...)都创建Serializeable类。

幸运的是,我发现了这个免费的开源代码(通过烧冰实现复合C1 Contrib)已经完成了所有这些工作:

源代码

许可证详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM