2016-08-01 37 views
0

儘管我已經在視圖上設置了屬性,但是當我以這種方式編寫代碼時,我無法檢索ical的uid。獲取交換日曆項目的使用

static void GetCalendarItem(ExchangeService svc, string iCalUid) 
    { 
     var view = new ItemView(500); 
     var propSet = new PropertySet(BasePropertySet.IdOnly); 
     propSet.Add(ItemSchema.Subject); 
     propSet.Add(MeetingMessageSchema.ICalUid); 
     var items = svc.FindItems(WellKnownFolderName.Calendar, view); 
     foreach (var item in items) 
     { 
      var subject = item.Subject; 
      var guid = DefaultExtendedPropertySet.PublicStrings; 
      var epdUid = new ExtendedPropertyDefinition(guid, "UID", MapiPropertyType.Binary); 
      string uid = string.Empty; 
      var result = false; 
      if(item.TryGetProperty<string>(epdUid, out uid)) 
      { 
       result = true; 
      } 

      Console.WriteLine("Sub: {0}, Result: {1}", subject, result); 
     } 
    } 

我正在使用managed ews api 2.2。在這個例子中結果總是打印false

回答

0

你的代碼有多個問題,你已經創建了一個屬性集,但是你沒有在ItemView上設置它。您的ExtendedProperty不正確,除非您擁有您自己的擴展屬性並且您沒有將其加載到任何EWS操作中,因此我永遠不會顯示任何值。你的代碼看起來應該像

static void GetCalendarItem(ExchangeService svc, string iCalUid) 
{ 
    var view = new ItemView(500); 
    var propSet = new PropertySet(BasePropertySet.IdOnly); 
    propSet.Add(ItemSchema.Subject); 
    propSet.Add(MeetingMessageSchema.ICalUid); 
    view.PropertySet = propSet; 
    var items = svc.FindItems(WellKnownFolderName.Calendar, view); 
    foreach (var item in items) 
    { 
     var subject = item.Subject; 
     var result = item.ICalUid; 


     Console.WriteLine("Sub: {0}, Result: {1}", subject, result); 
    } 
} 
+0

'item'沒有一個屬性'ICalUid' – deostroll

+0

檢查ITEMTYPE並酌情將其轉換爲約會 –