我想获取具有EWS API的房间的字段Notes
。
此字段存在于Outlook上,但我找不到使用API获取它的方法。
到目前为止,我试图用以下方式获取它:
NameResolutionCollection nameResolutions = service.resolveName(room.getName(), ResolveNameSearchLocation.DirectoryThenContacts, true);
但返回的联系人中不存在Notes
字段。
我还尝试用
获取它Contact roomContact = Contact.bind(service, new ItemId(room.getId()), new PropertySet(BasePropertySet.FirstClassProperties, ContactSchema.Body));
// roomContact.getBody().toString() should contains the 'Notes' field
但是,房间没有任何ItemId:room.getId()
返回null
最后,我尝试使用nameResolution.getContact().load(new PropertySet(ItemSchema.Body))
加载该属性,这次我有例外InvalidOperationException: This operation can't be performed because this service object doesn't have an Id
。
您是否了解我如何获取房间的Notes
字段?我可能也想找到一个房间ID的方法。
答案 0 :(得分:1)
您需要使用ResolveName中的PropertySet重载来指定您希望ResolveName返回的所有属性(如果已启用,它也将返回Userphoto),例如
PropertySet AllProps = new PropertySet(BasePropertySet.FirstClassProperties);
NameResolutionCollection ncCol = service.ResolveName("User@domain.com", ResolveNameSearchLocation.DirectoryOnly, true, AllProps);
foreach (NameResolution nr in ncCol)
{
Console.WriteLine(nr.Contact.Notes);
}
您无法对从GAL返回的联系人执行加载,因为这不是和Exchange存储对象(例如,它没有EWSId)。
干杯 格伦