Autofac和跨AppDomain代理
本文关键字:代理 AppDomain 和跨 Autofac | 更新日期: 2023-09-27 18:26:47
我正在尝试向Autofac注册一个跨AppDomain代理。
代理表示的具体类型实现了接口IServiceHost。因此,代理也应该允许使用该接口对代理进行调用。
我尝试通过以下操作向Autofac注册代理:
void Initialize(IServiceHost host)
{
Host = host;
var builder = new ContainerBuilder();
builder.RegisterInstance(host)
.As<IServiceHost>()
.SingleInstance();
Scope = builder.Build();
}
然而,在builder.Build()
呼叫中,我得到:
争论异常
类型"System.MarshalByRefObject"不可分配给服务"Treadmarks.Core.ServiceBase.IServiceHost".
但是,host
肯定是一个IServiceHost
,因为它不是null,而且它来自强类型方法参数。
有人能解释一下我如何正确注册代理吗?
您应该能够将lambda与.Register()
方法一起使用,而不是使用.RegisterInstance()
来解决此问题。