Autofac и кросс-доменные прокси

Я пытаюсь зарегистрировать кросс-домен 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 ответ

Решение

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

Другие вопросы по тегам