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

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

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

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

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

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


person Ronnie    schedule 19.01.2014    source источник


Ответы (1)


Мы использовали Windsor, но процесс одинаков для любого 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);
person penderi    schedule 20.01.2014
comment
Я связался с преобразователем зависимостей Funq, который использовал в исходном вопросе, и он также очень похож на Ninject, который отлично работает gist.github.com/aaronlerch/5345587 Видимо с Funq чего-то не хватает. - person Ronnie; 20.01.2014