Autofac и кросс-доменные прокси - PullRequest
4 голосов
/ 06 марта 2012

Я пытаюсь зарегистрировать перекрестный прокси AppDomain в Autofac.

Конкретный тип, представленный прокси, реализует интерфейс 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, поскольку он не равен нулю и исходит из строго типизированного аргумента метода.

Может кто-нибудь объяснитькак правильно зарегистрировать прокси?

1 Ответ

2 голосов
/ 07 марта 2012

Вы можете использовать лямбду с методом .Register() вместо .RegisterInstance(), чтобы обойти это.

...