2016-08-01 50 views
0

Obwohl ich die Eigenschaft in der Ansicht festgelegt habe, kann ich die iical-UID nicht abrufen, wenn ich Code auf diese Weise schreibe.Die ID des Exchange-Kalenderelements

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); 
     } 
    } 

Ich verwende verwaltete ews api 2.2. In diesem Beispiel wird das Ergebnis immer gedruckt false.

Antwort

0

Sie haben mehrere Probleme mit Ihrem Code, Sie haben einen Eigenschaftensatz erstellt, aber Sie haben dies nicht in der Artikelansicht festgelegt. Ihre ExtendedProperty ist nicht korrekt, es sei denn, Sie haben eine eigene erweiterte Eigenschaft mit dieser Definition, und Sie haben sie nicht in EWS-Operationen geladen, so dass ich nie einen Wert anzeigen kann. Sie Code sollte so aussehen

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' keine Eigenschaft haben' ICalUid' – deostroll

+0

die itemtype überprüfen und zu Termin Cast ggf. –