ExchangeService service = this.GetService();
FolderId folderID = GetPublicFolderID(service, "My Address Book");
ContactsFolder folder = ContactsFolder.Bind(service, folderID);
int folderCount = folder.TotalCount;
var guid = DefaultExtendedPropertySet.PublicStrings;
var epdCP = new ExtendedPropertyDefinition(guid, "CustomProp", MapiPropertyType.Boolean);
var epdAccount = new ExtendedPropertyDefinition(guid, "Account", MapiPropertyType.String);
var epdCID = new ExtendedPropertyDefinition(guid, "CustomerID", MapiPropertyType.Integer);
var view = new ItemView(folderCount);
view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
view.PropertySet.Add(epdCP);
view.PropertySet.Add(epdAccount);
view.PropertySet.Add(epdCID);
var contacts = service.FindItems(folderID, view);
foreach (Contact contact in contacts)
{
bool CP;
string Account;
int CID;
contact.GetLoadedPropertyDefinitions();
contact.TryGetProperty(epdCP, out CP);
contact.TryGetProperty(epdAccuont, out Account);
contact.TryGetProperty(epdCID, out CID);
Console.WriteLine(String.Format("{0, -20} - {1} - {2}"
, contact.DisplayName
, contact.EmailAddresses[EmailAddressKey.EmailAddress1]
, CP
, Account
, CID
));
}
목표는 공용 주소록에서 연락처 정보를 가져 와서 다른 프로그램과 동기화 할 수 있습니다.EWS 연락처 - 고객 ID 및 계정
공개 주소록의 각 연락처에 대해 DisplayName, EmailAddress 및 내 사용자 정의 속성이 인쇄됩니다. 거기에는 문제가 없습니다.
내가 가진 문제는 특정 속성을 끌어 올 올바른 주문을 얻지 못하는 것입니다. CustomerID와 Account는 내가 잡아 당기거나 인쇄 할 수없는 두 가지 예입니다. 그들은 내가 만들지 않은만큼 "Custom"이 아닙니다.
EWS를 통해 연락처에서 CustomerID와 Account를 얻으려면 어떻게해야합니까?