Я разрабатываю приложение, которое в значительной степени опирается на несколько продуктов Microsoft Office, включая Access, Excel, Word, PowerPoint и Outlook. Проводя исследование interop, я узнал, что, начиная с VS2010 и .NET 4, мы, к счастью, больше не должны проходить через кошмары PIA.
Кроме того, я читал много статей о правильной утилизации объектов, наиболее разумным, казалось, было this one.
Однако, статья 5 лет, и не так много авторитетных публикаций по теме AFAIK. Вот пример кода из приведенной выше ссылки:
' Cleanup:
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
Marshal.FinalReleaseComObject(worksheet)
oWB.Close(SaveChanges:=False)
Marshal.FinalReleaseComObject(workbook)
oApp.Quit()
Marshal.FinalReleaseComObject(application)
То, что я хочу знать, - это сегодняшние стандарты, насколько это точно и на что я должен обратить внимание, если я ожидаю поддержки своего приложения в ближайшие несколько лет?
ОБНОВЛЕНИЕ: Приветствуется ссылка на некоторые достоверные статьи. Кстати, это не приложение на стороне сервера. Это будет работать в компьютерных лабораториях, где мы будем взаимодействовать с офисными продуктами, которые мы им создаем.