ASP.NET邮件附件内联

时间:2017-03-21 19:03:23

标签: c# asp.net

我有这行代码可以创建附件。

email.Attachments.Add(new Attachment(new MemoryStream(filebytes), "QRCode.png"));

现在我正在尝试将ContentDisposition.Inline属性应用于它....如何在创建附件时按照我的方式执行此操作?

2 个答案:

答案 0 :(得分:0)

我想你想在一行中找到解决方案,这是一种方法:

email.Attachments.Add((new Func<Stream, Attachment>(stream => { var attachment = new Attachment(stream, "QRCode.png"); attachment.ContentDisposition.Inline = true; return attachment; }).Invoke(new MemoryStream(fileBytes))));

但是,强烈反对这种方法,很难阅读。

答案 1 :(得分:0)

如果由于某种原因绝对需要成为一条线,那么@ darjan-bogdan的解决方案将会成为现实。

但是,如果目标是只有一个单行逻辑语句来添加附件,我只需使用辅助方法,àla:

Attachment data = BuildAttachment(new MemoryStream(filebytes), "QRCode.png"));
...

private Attachment BuildAttachment(MemoryStream stream, string name) {
    Attachment attachment = new Attachment(stream, name);
    attachment.ContentDisposition.Inline = true;

    return attachment;
}

这会保留你的“单行”,我认为是你的for-loop。