这是主要问题。
我正在尝试将存储库模式与以下内容一起使用:
public interface IExchangeInboxRepository
{
IEnumerable<InboxEmail> GetAllEmails();
}
我想要完成的是获取电子邮件并创建一个域对象,如下所示:
public class InboxEmail
{
public IEnumerable<FileAttachment> Attachments { get; set; }
public string FromAddress { get; set; }
public string Subject { get; set; }
public string Content { get; set; }
public DateTime DateArrived { get; set; }
}
问题是,从我尝试使用 EWS 可以看出,就像在这个例子中一样:
使用 Exchange Web 服务从 Exchange 下载附件
当我尝试在域 obj 中的附件列表上执行 fileAttachment.Load() 时,它正在调用 Exchange 服务。没什么大不了的,但我希望存储库在建立 IEnumerable 后删除电子邮件以交回。如果我删除电子邮件,显然当我尝试访问 FileAttachment 时,它会引发“商店为空”的异常。有没有办法持久化 FileAttachment?
我基本上想保留附加在域对象中的文件,并在使用 EWS 对其进行迭代后删除电子邮件并将它们返回给存储库的用户。