Есть ли способ определить, указывает ли TransparentProxy
на действительную ссылку?
У меня есть IPlugin
. Я создаю новый AppDomain, загружаю сборку с реализацией IPlugin
и создаю экземпляр этой реализации. Я получаю IPlugin
, но под прикрытием его TransparentProxy
. Если я выгружу вторичный AppDomain, экземпляр IPlugin
(тот, на который указывает прокси-сервер) исчезнет. Но прокси все еще там указывает. Моя программа падает (без исключений), когда я пытаюсь получить доступ к прокси.
Psudeocode:
var domain = CreateDomain("domain");
var assembly = domain.LoadAssembly("myAssembly");
var plugin = domain.CreateObject("MyPlugin") as IPlugin;
// plugin is really a TransparentProxy to a MyPlugin
if (plugin != null)
plugin.DoSomething("123");
UnloadDomain(domain);
if (plugin != null) // Still evaluates to TRUE!
plugin.DoSomething("123"); // Program crashes with no exceptions