Re[2]: COM объект и Finalize
От: DragonFire Россия  
Дата: 14.07.09 12:15
Оценка:
Здравствуйте, TK, Вы писали:

TK>Все правильно — CriticalFinalizerObject вызывается последним. на данном этапе MyCOMObject был уже финализирован.

TK>Вам надо в вашей "оболочке" делать Marshal.GetIUnknownForObject и хранить его — в этом случае, будет гарантия того, что объект не "умрет" раньше времени.

Теперь я пишу так:
public class MyClass : CriticalFinalizerObject
{
   private MyCOMObject _Application;
   private IntPrt _Pointer;
   public MyClass ()
   {
        _Application = new MyCOMObject ();
        _Pointer = Marshal.GetIUnknownForObject(_Application);
   }
   ~MyClass ()
   {
       //тут в COM объект должно посылатсья сообщение, но вываливается исключение 
           //"COM object that has been separated from its underlying RCW cannot be used."
       _Application.Do("End");
       Marshal.Release(_Pointer);
   }

Та же самая ошибка вылезает... Никакого эффекта...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.