这是ItemSchema.Flag 属性。
当您使用 SyncFolderItems 时,请执行以下操作来读取此类属性:
var property_set = new PropertySet(ItemSchema.Flag, ItemSchema.Id);
var result = service.SyncFolderItems(folder_id, property_set, new ItemId[] { }, 10,
SyncFolderItemsScope.NormalItems, sync_state);
foreach (var result_item in result)
{
var flag = result_item.Item.Flag;
}
flag 变量的类型为 Flag。看看它的 FlagStatus 成员,看看如何检测项目是否被标记。
由于这仅适用于 Exchange 2013,以下是适用于 Exchange 2010 的解决方法:
var flag_property = new ExtendedPropertyDefinition(0x1090 , MapiPropertyType.Integer);
var property_set = new PropertySet(flag_property, ItemSchema.Id);
var result = service.SyncFolderItems(WellKnownFolderName.Inbox, property_set, new ItemId[] { }, 10,
SyncFolderItemsScope.NormalItems, sync_state);
foreach (var result_item in result)
{
var flag = result_item.Item.ExtendedProperties.FirstOrDefault(x => x.PropertyDefinition == flag_property);
if (flag == null)
{
//Item is not flagged
}
else if((int)flag.Value == 1)
{
//Item is makred complete
}
else if ((int)flag.Value == 2)
{
//Item is flagged
}
}
这基于PidTagFlagStatus 属性。请注意,文档声明这不适用于会议或任务项目。