Импорт файла ics в файл Outlook.AppointmentItem
У меня есть надстройка Outlook 2007, которая пытается импортировать файлы ics в объекты Outlook.AppointmentItem, чтобы я мог читать атрибуты о некоторых встречах. В настоящее время я не могу прочитать iics обратно в память. Любые предложения о том, что я делаю неправильно.
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*
Спасибо
Ответы
Ответ 1
Я думаю, проблема связана с тем, что AppointmentItem и MeetingItem - это разные классы, поэтому вы не можете напрямую конвертировать друг в друга. Не могли бы вы попробовать следующее и проверить, работает ли он?
var item = app.Session.OpenSharedItem(@"C:\meeting.ics") as Outlook.AppointmentItem;
Ответ 2
Возможно, потому, что этот файл ics просто представляет элемент собрания, а не пункт назначения. Насколько я знаю, вы можете попробовать использовать код, как показано ниже,
Outlook.MeetingItem item = app.Session.OpenSharedItem(@"C:\SomeMeeting.ics") as Outlook.MeetingItem;
Если у вас есть какие-либо проблемы, пожалуйста, не стесняйтесь следить.
http://social.msdn.microsoft.com/Forums/en-GB/vsto/thread/f98bfa75-a995-403e-a3fc-5be3a37511d7
Ответ 3
Просто проверьте его тип
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