Próbuję zarejestrować serwer proxy Cross-AppDomain z funkcją Autofac.Serwery proxy Autofac i Cross-AppDomain
Typ betonu reprezentowany przez serwer proxy implementuje interfejs IServiceHost. W związku z tym serwer proxy powinien również, w celu umożliwienia wywołań do proxy wykorzystujących ten interfejs do działania.
próbuję zarejestrować proxy z Autofac, wykonując:
void Initialize(IServiceHost host)
{
Host = host;
var builder = new ContainerBuilder();
builder.RegisterInstance(host)
.As<IServiceHost>()
.SingleInstance();
Scope = builder.Build();
}
jednak na wezwanie builder.Build()
, otrzymuję:
ArgumentException
typu „System.MarshalByRefObject "nie można przypisać usługi" Treadmarks.Core.ServiceBase.IServiceHost ".
Jednak host
jest zdecydowanieIServiceHost
, ponieważ nie jest null i pochodzi z silnie typami metoda argumentacji.
Czy ktoś może wyjaśnić, w jaki sposób mogę poprawnie zarejestrować proxy?
Więc 'host' nie implementuje' IServiceHost'? W takim przypadku nie jest to problem autofachu. – Steven
@Steven Powiedziałem konkretnie, że typ pośredni * nie * implementuje 'IServiceHost', a zatem proxy musi go również implementować. –
Autofac sprawdza, czy 'host' jest' IServiceHost', a ponieważ nie jest, Autofac zgłasza wyjątek. – Steven