使用.load()函数时,尝试将文件附件加载到内存中时出现以下异常错误。
所需属性' Id'缺少
我无法显式分配Id属性,因为它是只读的。有什么想法吗?
EmailMessage email = new EmailMessage(Exchange);
email.Attachments.AddFileAttachment("picture.jpg");
email.Attachments[0].IsInline = true;
email.Attachments[0].ContentId = "picture.jpg";
email.Attachments[0].Load(); // Errors here
答案 0 :(得分:1)
Load()方法通过进行EWS调用来加载附件。从您的代码段开始,它必然会失败,因为尚未在Exchange中创建电子邮件对象,因此它没有要引用的ID。 (参考:http://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.attachment.load(v=exchg.80).aspx)
您能否为您要解决的问题提供更多背景信息? 从上面的评论中,您提到能够将电子邮件附加到另一个父电子邮件。您可能有兴趣看看在上面提供的@JPRO链接中添加ItemAttachments。 另请参阅AttachmentCollection类:http://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.attachmentcollection_methods(v=exchg.80).aspx
同样,由于我不知道您要解决的问题,这些可能对您有用,也可能没有用。如果你能提供更多的背景,那将会很有帮助。
答案 1 :(得分:0)
您是否有理由需要使用Load?基于this reference我相信你可以附上这样的jpg:
EmailMessage email = new EmailMessage(Exchange);
byte[] picBytes = File.ReadAllBytes(@"path\to\picture.jpg");
email.Attachments.AddFileAttachment("picture.jpg", picBytes);
email.SendAndSaveCopy();
答案 2 :(得分:0)
ID在内部设置,您指定的文件是否可能不存在于执行目录中?
您是否尝试过将其作为流加载? (http://msdn.microsoft.com/en-us/library/dd634477(v=exchg.80).aspx)