我正在嘗試使用Autofac註冊跨AppDomain代理。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()
電話,我得到:
的ArgumentException
類型「System.MarshalByRefObject '不可分配給服務'Treadmarks.Core.ServiceBase.IServiceHost'。
然而,host
是絕對的IServiceHost
,因爲它不爲空,它來自一個強類型的方法參數。
任何人都可以解釋我可以如何正確註冊代理?
所以'主機'不實施'IServiceHost'?在這種情況下,它不是一個Autofac問題。 – Steven 2012-03-06 14:04:59
@Steven我特別說過,代理類型*實現了'IServiceHost',因此代理也必須實現它。 – 2012-03-06 14:12:16
Autofac檢查'host'是否是'IServiceHost',因爲它不是,Autofac拋出異常。 – Steven 2012-03-06 14:20:24