Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 所需的属性';Id';不见了_C#_Exception_Exchangewebservices - Fatal编程技术网

C# 所需的属性';Id';不见了

C# 所需的属性';Id';不见了,c#,exception,exchangewebservices,C#,Exception,Exchangewebservices,当使用.load()函数时,我在尝试将文件附件加载到内存时遇到以下异常错误 缺少必需的属性“Id” 我无法显式分配Id属性,因为它是只读的。有什么想法吗 EmailMessage email = new EmailMessage(Exchange); email.Attachments.AddFileAttachment("picture.jpg"); email.Attachments[0].IsInline = true; email.Attachments[0].ContentId = "

当使用.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

是否有需要使用Load的原因?基于此,我相信您可以像这样附加jpg:

EmailMessage email = new EmailMessage(Exchange);
byte[] picBytes = File.ReadAllBytes(@"path\to\picture.jpg");
email.Attachments.AddFileAttachment("picture.jpg", picBytes);
email.SendAndSaveCopy();

ID是在内部设置的,您指定的文件是否可能不存在于执行目录中

您是否尝试过将其作为流加载?()

Load()方法通过调用EWS来加载附件。从您的代码片段来看,它肯定会失败,因为电子邮件对象尚未在Exchange中创建,因此它没有可引用的Id。(参考号:)

你能不能对你要解决的问题多讲一点背景知识? 从上面的评论中,您提到可以将电子邮件附加到另一个家长电子邮件。您可能有兴趣在上面提供的@JPRO链接中添加ItemAttachments。 另请参阅AttachmentCollection类:


再说一次,因为我不知道你要解决的问题,这些可能对你有用,也可能没有。如果您能提供更多的上下文,这将非常有帮助。

jpg只是一个例子。。。它实际上是一个xml文件。从更大的角度来看,我想将该电子邮件作为附件添加到另一封电子邮件(emailParent)中并发送出去。但是没有一个功能可以让我执行类似的操作:emailParent.Attachments.Add(email)。Add()不是一个选项。建议?当你说将电子邮件添加到另一封电子邮件时,我想你不是指转发原件。在这种情况下,有两种选择。选项一:将电子邮件另存为文件,然后使用AddFileAttachment,如上述答案所示。选项2您考虑将子电子邮件对象转换为流,然后您可以将其称为parentEmail.Attachments.Add(新附件(流,contentType))文件确实存在,就像我调用email.SendAndSaveCopy()时一样该文件位于Outlook收件箱的电子邮件中。我已尝试在字节流中添加,但仍无法在内部设置ID。。。