从Exchange公用文件夹访问自定义视图列

时间:2011-11-14 21:10:29

标签: c# exchangewebservices

我正在使用Exchange Web服务访问公用文件夹中的联系人记录。我需要为该文件夹中的视图创建一个自定义列“Client Contact Management”。自定义列是在用户界面中创建的。

我之前已经在我通过代码创建的属性上使用了ExtendedPropertyDefinition类。这是我应该在这种情况下使用的,如果是,那么我如何获得自定义列的guid?

enter image description here

1 个答案:

答案 0 :(得分:0)

我终于在微软Exchange服务器论坛上找到了来自David Sterling的这个thread的答案。他的示例(下面复制)显示了如何直接使用EWS并使用托管API执行操作。

// via autogenerated proxy classes

PathToExtendedFieldType hairColorPath = new PathToExtendedFieldType();
hairColorPath.DistinguishedPropertySetId = DistinguishedPropertySetType.PublicStrings;
hairColorPath.DistinguishedPropertySetIdSpecified = true;
hairColorPath.PropertyName = "HairColor";
hairColorPath.PropertyType = MapiPropertyTypeType.String;

// via the Client API

ExtendedPropertyDefinition hairColor = new ExtendedPropertyDefinition(
      DefaultExtendedPropertySet.PublicStrings, 
      "HairColor", 
      MapiPropertyType.String);

以下是我为自己的问题使用托管api所做的事情。关键是使用DefaultExtendedPropertySet.PublicStrings,即outlook存储自定义视图列。

ExtendedPropertyDefinition _clientContactManagementPropertyDefinition =
     new ExtendedPropertyDefinition(
          DefaultExtendedPropertySet.PublicStrings, 
          "Client Contact Management", 
          MapiPropertyType.Boolean
);