Безопасен ли такой маршалинг?
От: SanyaVB  
Дата: 10.11.14 08:55
Оценка:
Вот простой пример:
    [ComVisible(true)]
    public interface IInterface
    {
        [return: MarshalAs(UnmanagedType.Interface)]
        IInterface1 GetObject();
    }


Объект IInterface1 создается только в управляемой среде и используется как управляемым так и в неуправляемым кодом.
Вообщем для неуправляемого кода в таком случае это опасный маршалинг? Имеется ввиду влияние мусоросборщика!!!
Если все таки мусоросборщик может поменять адресное пространство объекта, то ниже написанная конструкция решит проблему?
  IInterface1 obj = new ...
  GCHandle objHandle = GCHandle.Alloc(obj, GCHandleType.Normal);
Отредактировано 10.11.2014 9:27 SanyaVB . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.