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属性?

Exchange FindItem对一个项目id和多个项目id使用不同的属性集进行响应

您可以使用ExchangeService.BindToItems方法。它返回一组全面的附件属性。

请参阅ExchangeService.BindToItems