2
有没有办法确定TransparentProxy
是否指向有效的引用?如何确定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
你应该得到一个RemotingException,而不是崩溃。不过,我想知道这个问题的答案。 – Qwertie 2012-01-08 19:23:51