c# – 对于一个项目ID和多个项目ID的不同的属性集,Exchange FindItem进行响应

当我通过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会生成与单个项目ID相同的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>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

转载注明原文:c# – 对于一个项目ID和多个项目ID的不同的属性集,Exchange FindItem进行响应 - 代码日志