C# 如何使用EWS和Java检索多个扩展属性
我在Outlook 2010的联系人文件夹中创建了两个“用户定义”字段。我正在使用C#ewsapi的Java端口。我的目标是读取特定用户的每个联系人的字段值。目前的问题是检索多个字段。在下面的代码中,您会发现我定义了多个(2)字段,这些字段是我想要访问的扩展属性。但是,在输出中,我最多只能检索1个字段。例如,一个联系人有两个字段,它只返回它找到的第一个字段。如果它只有两个字段中的一个,它将返回填充的字段。有什么想法吗C# 如何使用EWS和Java检索多个扩展属性,c#,java,outlook,exchangewebservices,C#,Java,Outlook,Exchangewebservices,我在Outlook 2010的联系人文件夹中创建了两个“用户定义”字段。我正在使用C#ewsapi的Java端口。我的目标是读取特定用户的每个联系人的字段值。目前的问题是检索多个字段。在下面的代码中,您会发现我定义了多个(2)字段,这些字段是我想要访问的扩展属性。但是,在输出中,我最多只能检索1个字段。例如,一个联系人有两个字段,它只返回它找到的第一个字段。如果它只有两个字段中的一个,它将返回填充的字段。有什么想法吗 private static void printContacts(Excha
private static void printContacts(ExchangeService service, int numOfContacts) throws Exception{
// Defined the properties you want to retreive
ExtendedPropertyDefinition propertyOne = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "property1", MapiPropertyType.String);
ExtendedPropertyDefinition propertyTwo= new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "property2", MapiPropertyType.String);
// Push the customer properties into an arary
ExtendedPropertyDefinition[] list = {propertyOne , propertyTwo};
// Create a property set to hold the properties
PropertySet propertySet = new PropertySet(BasePropertySet.FirstClassProperties, list);
// Get items from mail box
ItemView view = new ItemView(numOfContacts);
try {
FindItemsResults<Item> contactResults = service.findItems(WellKnownFolderName.Contacts, view);
for(Item item : contactResults.getItems()){
item.load();
Contact contact = Contact.bind(service, item.getId(), propertySet);
System.out.println("count: " + contact.getExtendedProperties().getCount());
for(ExtendedProperty prop : contact.getExtendedProperties()){
String propertyName = prop.getPropertyDefinition().getName().toString();
String propertyValue = prop.getValue().toString();
System.out.println(propertyName +" : "+ propertyValue);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
private static void printContacts(ExchangeService服务,int numOfContacts)引发异常{
//定义了要检索的属性
ExtendedPropertyDefinition propertyOne=新的ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicString,“property1”,MapPropertyType.String);
ExtendedPropertyDefinition propertyTwo=新的ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicString,“property2”,MapPropertyType.String);
//将客户财产推入仓库
ExtendedPropertyDefinition[]列表={propertyOne,propertyTwo};
//创建一个特性集以保存这些特性
PropertySet PropertySet=新的PropertySet(BasePropertySet.FirstClassProperties,列表);
//从邮箱获取邮件
ItemView视图=新的ItemView(NUMOF联系人);
试试{
FindItemsResults contactResults=service.findItems(WellKnownFolderName.Contacts,视图);
对于(项:contactResults.getItems()){
item.load();
Contact-Contact=Contact.bind(服务,item.getId(),propertySet);
System.out.println(“计数:+contact.getExtendedProperties().getCount());
对于(ExtendedProperty属性:contact.getExtendedProperties()){
字符串propertyName=prop.getPropertyDefinition().getName().toString();
String propertyValue=prop.getValue().toString();
System.out.println(propertyName+“:”+propertyValue);
}
}
}捕获(例外e){
e、 printStackTrace();
}
}
当我打印出扩展属性的计数时,它总是一个,即使两个扩展属性都设置了。任何帮助都将不胜感激。我也有同样的问题。你找到解决办法了吗?