Зависимость SignalR Funq

Я пытаюсь внедрить зависимости Signalr с помощью Funq DI

Процесс объяснен здесь довольно хорошо, и я попытался также следовать этому вопросу.

и версия Ninject работает довольно хорошо.

Теперь я пытаюсь преобразовать его в версию Funq, используя эту суть для FunqDependencyResolver. но эта версия Funq не работает и выдает "System.MissingMethodException: конструктор без параметров не определен для этого объекта", который должен быть, потому что он не регистрирует зависимости.

Это потому, что версия Ninject разрешается методом?

1 ответ

Мы использовали Виндзор, но процесс одинаков для любого IoC:

Сначала создайте свой преобразователь, наследуйте от signalR DefaultDependencyResolver:

public class CustomContainerResolver: DefaultDependencyResolver
{
        public CustomContainerResolver(IocContainer instance)
        {
            _instance = instance;
        }

        public override object GetService(Type serviceType)
        {
            return _instance.Instance.Kernel.HasComponent(serviceType) ? _instance.GetService(serviceType) : base.GetService(serviceType);
        }

        public override IEnumerable<object> GetServices(Type serviceType)
        {
            return _instance.Instance.Kernel.HasComponent(serviceType) ? _instance.GetAllInstances(serviceType): base.GetServices(serviceType);
        }
}

В вашем стартапе:

var signalrDependency = new CustomContainerResolver(container);

тогда как обычно

app.MapSignalR(hubConfiguration);
Другие вопросы по тегам