如何在使用跨应用程序域远程处理(或以其他方式解决我的问题)时注入客户端通道接收器

时间:2011-08-01 19:27:46

标签: c# appdomain .net-remoting

In a previous post,我遇到了LogicalCallContext数据的问题,这些数据不是也不应该是可序列化的,并且会对远程调用造成严重破坏。我通过实现客户端通道接收器去除调用上下文数据来解决问题。我现在有一个几乎完全相同的问题,除了在同一个进程中对另一个AppDomain进行远程调用,使用这样的经典代码:

var remoteDomain = AppDomain.CreateDomain("SomeDomain", null, appDomainSetup);
var serviceProxy = (IMyService)remoteDomain.CreateInstanceAndUnwrap(serviceType.Assembly.FullName, serviceType.FullName);

对当前问题的另一个警告是,调用数据正由正在使用我的代码的客户端程序集放置在上下文中,因此我无法控制它是否存在。

当前问题的关键在于,据我所知,用于跨应用程序域远程处理的通道接收器链被硬编码到.Net中。因此,没有办法注入我开发的CallContextSaninitization接收器作为原始问题的解决方案。

有没有人知道解决原始问题的更好方法,或者在使用跨AppDomain远程处理时注入客户端通道接收器的方法?

0 个答案:

没有答案