我正在尝试使用 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 并且它来自一个强类型的方法参数。
谁能解释我如何正确注册代理?