2010-03-04 9 views
14

Ich habe ein Outlook 2007-Add-in, das versucht, ics-Dateien in Outlook.AppointmentItem Objekte zu importieren, so dass ich Attribute über bestimmte Termine lesen kann. Momentan kann ich die ics nicht mehr im Speicher ablesen. Irgendwelche Vorschläge, was ich falsch mache.Importieren von ics-Datei in ein Outlook.AppointmentItem

Outlook.Application app = new Outlook.Application(); 
var item = app.Session.OpenSharedItem("C:\\meeting.ics") as Outlook.AppointmentItem; 
string meetingBody = item.Body; //<--*my item is null* 

Dank

+0

Ist die ICS-Datei haben UNIX- oder Windows-end-of-line Zeichen? Ich hatte ein Problem, als ich versuchte, etwas Ähnliches zu tun - da die ics-Datei, als ich zu importieren versuchte, von PHP auf einer Unix-Plattform erstellt wurde - schien das Ändern der Zeilenende-Zeichen zu Windows zu helfen. – alshapton

+0

@alshapton ... ICS-kompatible Dateien erfordern Zeilenumbrüche von CRLF - siehe RFC 5545, Sec 3.1: "Die Inhaltsinformationen, die mit einem iCalendar-Objekt verknüpft sind, werden mit einer ähnlichen Syntax wie in [RFC2425] definiert besteht die Inhaltsinformation aus CRLF-getrennten Inhaltszeilen. " –

Antwort

1

denke ich, das Problem auf die Tatsache zurückzuführen ist, dass AppointmentItem und MeetingItem sind verschiedene Klassen, so dass Sie nicht einer zu anderen direkt umwandeln können. Könnten Sie Folgendes versuchen und prüfen, ob es funktioniert?

var item = app.Session.OpenSharedItem(@"C:\meeting.ics") as Outlook.AppointmentItem; 
1

nur seine Art überprüfen

  Set attObj = ns.OpenSharedItem(strFilename)     

      Select Case TypeName(attObj) 
       Case "MeetingItem" 
        Dim miNewMeetingItem As Outlook.MeetingItem 
        Set miNewMeetingItem = attObj 
        ... 
       Case "AppointmentItem" 
        Dim miNewAppointmentItem As Outlook.AppointmentItem 
        Set miNewAppointmentItem = attObj 
        ... 
       Case Else 
        Dim miNew As Outlook.MailItem 
        Set miNew = attObj 
        ... 
      End Select 

      Set attObj = Nothing