2009-10-13 3 views
5

У меня есть класс, написанный в C#, который действует как оболочка вокруг COM-компонента. Компонент COM ранней связи и RCW был создан Visual Studio. Должен ли я реализовать шаблон dispose в моем классе-оболочке, чтобы очистить ссылку COM, или я должен просто позволить GC обрабатывать его, поскольку у него уже есть RCW?Существует ли класс оболочки, вызывающий COM-компонент через C#, реализовать шаблон Dispose?

ответ

4

Существует редко необходимо для реализации Dispose, но для этого есть веские причины.

Если COM-объект представляет собой значительный ресурс, который должен быть быстро выпущен, это может быть хорошей причиной для реализации Dispose.

В вашем методе Dispose вы можете сделать: -

System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW); 

Поэтому утилизации ваш класс будет немедленно освободить объект COM.

+0

Это заставляет меня задаться вопросом, почему RCW не реализует шаблон Dispose, кажется, что это правильно. – vmb100

 Смежные вопросы

  • Нет связанных вопросов^_^