Exchange FindItem отвечает различным набором свойств для одного элемента id и для нескольких идентификаторов элементов

Когда я загружаю свойства нескольких элементов обмена методом 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. Но когда я использую метод Load класса Item для загрузки свойств одного элемента, EWS Managed API генерирует тот же самый запрос GetItem SOAP с идентификатором одного элемента и 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>[email protected]</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>[email protected]</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 свойства вложений элементов без загрузки свойств для всех элементов отдельно?

Ответ 1

Вы можете использовать метод ExchangeService.BindToItems. Он возвращает полный набор свойств привязки.

См ExchangeService.BindToItems