Exchange FindItem对一个项目id和多个项目id使用不同的属性集进行响应
本文关键字:id 项目 响应 属性 FindItem Exchange 一个 | 更新日期: 2023-09-27 18:26:03
当我用ExchangeService.LoadPropertiesForItems
方法加载多个交换项目的属性时,exchange会跳过项目附件的一些属性作为响应:
<t:CalendarItem>
<t:ItemId Id="itemId" ChangeKey="itemChangeKey"/>
<t:Subject>Test appointment</t:Subject>
<t:Attachments>
<t:FileAttachment>
<t:AttachmentId Id="firstAttachmentId"/>
<t:Name>pdf.pdf</t:Name>
<t:Size>94150</t:Size>
<t:LastModifiedTime>2015-08-03T10:54:40</t:LastModifiedTime>
<t:IsInline>false</t:IsInline>
<t:IsContactPhoto>false</t:IsContactPhoto>
</t:FileAttachment>
<t:FileAttachment>
<t:AttachmentId Id="secondAttachmentId"/>
<t:Name>ATT89202</t:Name>
<t:Size>3803738</t:Size>
<t:LastModifiedTime>2015-12-03T16:40:46</t:LastModifiedTime>
<t:IsInline>true</t:IsInline>
</t:FileAttachment>
</t:Attachments>
</t:CalendarItem>
正如您所看到的,在上面的响应中不包括ContentId
属性。但是当我使用Item
类的Load
方法加载单个项目的属性时,EWS Managed API生成相同的GetItem
SOAP请求,带有单个项目id,Exchange使用扩展的附件属性集进行响应:
<t:CalendarItem>
<t:ItemId Id="itemId" ChangeKey="itemChangeKey"/>
<t:Subject>Test appointment</t:Subject>
<t:Attachments>
<t:FileAttachment>
<t:AttachmentId Id="firstAttachmentId"/>
<t:Name>pdf.pdf</t:Name>
<t:ContentId>25F20E449DEC42B67EB3DE58C51E56E3BE0B27F5@1</t:ContentId>
<t:Size>94150</t:Size>
<t:LastModifiedTime>2015-08-03T10:54:40</t:LastModifiedTime>
<t:IsInline>false</t:IsInline>
<t:IsContactPhoto>false</t:IsContactPhoto>
</t:FileAttachment>
<t:FileAttachment>
<t:AttachmentId Id="secondAttachmentId"/>
<t:Name>ATT89202</t:Name>
<t:ContentId>DB969CA378C5F9565E98779626E3BCA3A65FB275@1</t:ContentId>
<t:Size>3803738</t:Size>
<t:LastModifiedTime>2015-12-03T16:40:46</t:LastModifiedTime>
<t:IsInline>true</t:IsInline>
</t:FileAttachment>
</t:Attachments>
</t:CalendarItem>
如您所见,在第二个响应中,出现了ContentId
属性此外,当我使用ExchangeService.LoadPropertiesForItems
方法时,传入单个项作为第一个参数,Exchange还将Attachment.ContentId
属性包含在响应中。
有没有一种方法可以在不单独加载所有项目的属性的情况下获得项目附件的ContentId
属性?
您可以使用ExchangeService.BindToItems
方法。它返回一组全面的附件属性。
请参阅ExchangeService.BindToItems