这不是编码问题 - 而是一个明智的问题 我需要将第三方DLL加载到我的Process中,但是在一个新的App域中(因为我必须能够在以后卸载它)。
我在网上看到的大多数样本都是MarshalByRefObject,但据我所知,Remoting已经死了。
所以我认为流程应该是这样的:
这种情况有效吗?或者我应该使用像http://msdn.microsoft.com/en-us/library/3c4f1xde(v=vs.100).aspx
这样的样本谢谢!
答案 0 :(得分:3)
不正确的。虽然.NET Remoting 对于进程间或机器间通信来说可能“已经死了”,但在相同进程中与在不同AppDomain中运行的其他对象进行通信远非死亡
以下是2013年8月的MSDN文章:
远程处理用于Microsoft .NET 4.5 中的 System.AddIn 命名空间(或MAF),它允许您在不同的地方托管插件的应用程序域即可。 - Add-ins and Extensibility
我建议您查看 System.AddIn ,而不是自己动手。
虽然现在变老,但如果您热衷于制作自己的插件系统,以下文章非常有用。它适用于.NET 2,但我发现它仍然相关 - 我知道我的插件系统仍然有效:
...或者我应该使用像[AppDomain.CreateInstanceAndUnwrap] 这样的样本
是。见上文
我认为你也会发现,由于后者的开销,单进程Remoting甚至会超过命名管道的WCF。