我正在使用EWS将联系人项目添加到office365帐户。 一切正常,只有一个细节不如预期。 当我创建新的联系人并添加例如这样的家庭住址:
if (ewsContact.PhysicalAddresses.Contains(PhysicalAddressKey.Home) == false)
{
ewsContact.PhysicalAddresses[PhysicalAddressKey.Home] = new PhysicalAddressEntry();
}
if (string.IsNullOrEmpty(contact.HomeZip) == false)
{
ewsContact.PhysicalAddresses[PhysicalAddressKey.Home].PostalCode = contact.HomeZip;
}
if (string.IsNullOrEmpty(contact.HomeCity) == false)
{
ewsContact.PhysicalAddresses[PhysicalAddressKey.Home].City = contact.HomeCity;
}
数据被写入联系人项目,但在组合字段和Outlook中的卡片视图中,Zip和City的排序始终是在美国使用的顺序 - 例如华盛顿98155
由于我有很多来自欧洲的地址,我需要正确的订单 - 例如柏林10115 如果我在Outlook中打开联系人,请在一个位置更改邮政编码并将其保存回来,订单会正确保存并且Outlook中的显示正确无误。
有没有办法让EWS获得正确的订单?
答案 0 :(得分:0)
您需要设置PidLidWorkAddress属性https://msdn.microsoft.com/en-us/library/office/cc815905.aspx,该属性应包含在客户端区域设置中格式化的地址信息。所以在EWS中你需要使用扩展属性定义来设置它,例如
ExtendedPropertyDefinition PidLidWorkAddress = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Address, 0x801B, MapiPropertyType.String);
ewsContact.SetExtendedProperty(PidLidWorkAddress, AddressValue);