我正在设置订阅服务,以便按计划向我们公司的不同人员发送报告。我计划通过电子邮件发送报告,我正在使用的报告系统可以导出为PDF流(而不是写入临时文件)。什么我不确定是我应该冲洗,并关闭流只是将它添加到列表中后,大多数人会收到不止一个报告,所以我想他们都附加到一个电子邮件做这样的事情C#列表<Stream>处理/关闭
List<Stream> reports = new List<Stream>();
//looping code for each users set of reports
Stream stream = ReportSource.ReportDocument.ExportToStream(PortableDocFormat)
reports.Add(stream);
stream.Flush(); //unsure
stream.Close(); //unsure
//end looping code
SmtpClient smtpClient = new SmtpClient(host, port);
MailMessage message = new MailMessage(from, to, subject, body);
foreach (Stream report in reports)
{
message.Attachments.Add(new Attachment(report, "application/pdf"));
}
smtpClient.Send(message);
这会好吗?或者我需要循环列表后冲洗和处置?我试图避免任何可能的内存泄漏。
pwetty! +1。 15chars – Quibblesome 2009-12-04 17:06:10
您可以使StreamCollection通用,然后它可以用于任何IDisposable对象 – thecoop 2009-12-04 17:07:08
就像这种方法将使用它 – PeteT 2009-12-05 16:32:41