当我按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请求,其中包含单个项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
属性,而无需单独为所有商品加载属性?
答案 0 :(得分:2)
您可以使用ExchangeService.BindToItems
方法。它返回一组全面的附件属性。