【发布时间】:2008-11-06 21:46:54
【问题描述】:
在.Net Activator.GetObject(Type type, string url, object data) 中返回对象的代理。我猜这个代理继承自 MarshalByRefObject 并且可以跨 AppDomains 发送。我说的对吗?
在我的应用程序中,我在 appdomain A 中创建一个对象并使用它 appdomain B。该对象的成员是使用 Activator.GetObject () 创建的代理对象。所以,当我在 AppDomain B 中时,我有一个在 appdomain A 中创建的对象的透明代理。当我尝试对代理对象执行调用方法时,我遇到了错误。
例如,我在 App Domain B 中创建了一个 Connection 对象。我在 App Domain A 中有 Connection 对象的透明代理。当我尝试从 AppDomain A 进行这样的调用时遇到错误。ConnectionObject。 SecurityProxy.GetSecurityAccount()。看起来问题是当我尝试像上面那样拨打电话时,它试图在 AppDomain A 中再次创建 SecurityProxy,而不是将呼叫转发到 AppDomain B。连接时已经在 AppDomain B 中创建了安全代理对象被创建。
你能帮我弄清楚我做错了什么吗?
问候, 阿尼尔。
【问题讨论】:
-
为什么要使用GetObject 方法和一个Url 在两个appdomains 之间进行通信?可以使用 CreateInstance 从其他 appdomain 创建对象。另外,你能指定你在谈论哪些错误吗?
标签: .net remoting appdomain proxy-classes