C# 如何使用EWS和Java检索多个扩展属性

C# 如何使用EWS和Java检索多个扩展属性,c#,java,outlook,exchangewebservices,C#,Java,Outlook,Exchangewebservices,我在Outlook 2010的联系人文件夹中创建了两个“用户定义”字段。我正在使用C#ewsapi的Java端口。我的目标是读取特定用户的每个联系人的字段值。目前的问题是检索多个字段。在下面的代码中,您会发现我定义了多个(2)字段,这些字段是我想要访问的扩展属性。但是,在输出中,我最多只能检索1个字段。例如,一个联系人有两个字段,它只返回它找到的第一个字段。如果它只有两个字段中的一个,它将返回填充的字段。有什么想法吗 private static void printContacts(Excha

我在Outlook 2010的联系人文件夹中创建了两个“用户定义”字段。我正在使用C#ewsapi的Java端口。我的目标是读取特定用户的每个联系人的字段值。目前的问题是检索多个字段。在下面的代码中,您会发现我定义了多个(2)字段,这些字段是我想要访问的扩展属性。但是,在输出中,我最多只能检索1个字段。例如,一个联系人有两个字段,它只返回它找到的第一个字段。如果它只有两个字段中的一个,它将返回填充的字段。有什么想法吗

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();
}
}

当我打印出扩展属性的计数时,它总是一个,即使两个扩展属性都设置了。任何帮助都将不胜感激。

我也有同样的问题。你找到解决办法了吗?