2011-02-01 60 views
4

我正尝试使用EWS API创建新联系人。除了联系人标题属性,我可以设置所需的所有值。我试过代码:如何使用Exchange Web服务托管API设置联系人标题

oContact = new Contact(oService); 
oContact.GivenName = "John"; 
oContact.Surname = "Doe"; 
oContact.Displayname = oContact.Surname; 

// set the title property as extended property 
// reference: http://msdn.microsoft.com/en-us/library/gg274394.aspx 
ExtendedPropertyDefinition oTitleProp = new ExtendedPropertyDefinition(
    new Guid("{00062004-0000-0000-C000-000000000046}"), 
    0x3A45, 
    MapiPropertyType.String); 
oContact.SetExtendedProperty(oTitleProp, "Mr."); 

oContact.Save(); 

我没有得到一个错误,但是当我在2010年的前景检查标题字段,它是空的。我正在使用Exchange 2010.

任何想法我做错了什么?

亲切的问候

福尔克马尔

回答

6

简答

当创建的,而不是你有上面的代码扩展属性的定义,在这里你指定propertySetId不使用构造函数。取而代之的是,构建这样的:

ExtendedPropertyDefinition oTitleProp = new ExtendedPropertyDefinition(
    0x3A45, 
    MapiPropertyType.String); 

再回应

引用你从微软很有趣。从阅读关于Inside Microsoft Exchange Server 2007 Web Services中的扩展原型的章节,我一直认为对于不在定制范围(0x8000以下)中的扩展属性,引用它们时,您会忽略propertySetId,所以有趣的是,该页面,微软似乎暗示你会使用它。

对于它的价值,有一个免费的附录(附录C),以内部的Microsoft Exchange Server 2007 Web服务也文件在http://www.microsoft.com/mspress/companion/9780735623927/扩展性能可能比时使用propertySetId微软页面更清晰,什么时候不。

还有属性的更精确的名单及其相应的属性设置在http://msdn.microsoft.com/en-us/library/cc433490(EXCHG.80).aspx

相关问题