Как заставить собирать мусор объект, который вы не можете разыменовать?

Мы используем EWS Managed API, который опрашивает MS Exchange на предмет новых почтовых сообщений через заданный интервал времени. При каждом вызове опроса (PullSubscription.GetEvents()) - Microsofts API не может правильно утилизировать NetworkStream и приводит к пропорциональному увеличению памяти. Эта проблема ранее обсуждалась здесь, но так и не была решена. Используя ANTS Profiler, мы смогли определить, какие объекты постоянно увеличивали память, и изолировать проблему.

Теперь, когда проблема изолирована - есть ли способ утилизировать NetworkStream, созданный во внешнем API, на который у нас нет ссылки? GC.Collect(), похоже, не утилизирует его, поскольку у него все еще есть активная ссылка. Что мы можем сделать, чтобы очистить висящую ссылку? Есть ли какая-то обёртка, которую можно использовать для принудительной очистки их глючного SDK?

9
задан Community 23 May 2017 в 01:55
поделиться