最简单的方法来进行跨appdomain调用?

use*_*528 11 .net c# clr ipc

我需要在另一个appdomain中调用对象的方法(传递param并获得结果).想法?

UPD两个AppDomain都不是由我的代码创建的(主机应用程序创建它,然后我的代码被调用).如何从另一个AppDomain访问?

Cen*_*tro 14

如果您在另一个域中创建了一个对象,例如使用AppDomain.CreateInstanceAndUnwrap,那么在另一个域中调用该对象所需的只是调用对象的方法.

进行跨应用程序域调用的最简单方法就是直接在该对象上进行调用,该对象实际上是通过其代理从另一个域公开的,存在于另一个域中.

UPD
不幸的是,获得主机域并不容易.你应该枚举域像和它们之间找到主机一台.我想你的主机域是该方法AppDomain.IsDefaultAppDomain返回true的域.

  • @ user626528是的,但不仅仅是一个对象的一个​​方法的回调.如果在另一个域中创建对象,则在该域中调用其所有方法.我想你应该创建一个负责回调的类,然后通过`AppDomain.CreateInstanceAndUnwrap`在另一个域中创建该类的实例,最后在另一个域的实例上调用该方法. (2认同)