Зависимость 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);