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