Asp.net 信号器:正在解析IMessageBus

Asp.net 信号器:正在解析IMessageBus,asp.net,signalr,structuremap,signalr-hub,Asp.net,Signalr,Structuremap,Signalr Hub,我正在使用此方法将依赖项注入到我的中心类中: public class StructureMapDependencyResolver : DefaultDependencyResolver { private readonly IContainer _container; public StructureMapDependencyResolver(IContainer container) { if (container =

我正在使用此方法将依赖项注入到我的中心类中:

public class StructureMapDependencyResolver : DefaultDependencyResolver
{
        private readonly IContainer _container;
        public StructureMapDependencyResolver(IContainer container)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }
            _container = container;
        }
        public override object GetService(Type serviceType)
        {
            return !serviceType.IsAbstract && !serviceType.IsInterface && serviceType.IsClass
                               ? _container.GetInstance(serviceType)
                               : (_container.TryGetInstance(serviceType) ?? base.GetService(serviceType));
        }
        public override IEnumerable<object> GetServices(Type serviceType)
        {
            return _container.GetAllInstances(serviceType).Cast<object>().Concat(base.GetServices(serviceType));
        }
 }
它在SignalR版本2.1.2中起到了很好的作用,但升级到SignalR版本2.2.0后,我遇到了以下错误:

No default Instance is registered and cannot be automatically determined for type 'Microsoft.AspNet.SignalR.Messaging.IMessageBus'

There is no configuration specified for Microsoft.AspNet.SignalR.Messaging.IMessageBus

1.) new AckSubscriber(*Default of IMessageBus*, *Default of IAckHandler*)
2.) Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber
3.) Instance of Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber
4.) Container.GetInstance(Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber)
它说它无法解决IMessageBus!我尝试过这个解决方案(),但没有解决问题。
我应该为该依赖关系提供一个实现吗?例如,类似这样的事情:

x.For<IMessageBus>().Use<MessageBus>();
x.For().Use();

有什么想法吗?

谢谢@VahidN,实际上我应该先从基类中解析():

你试过了吗?
x.For<IMessageBus>().Use<MessageBus>();
public override object GetService(Type serviceType) {
    if (serviceType == null) return null;

    var service = base.GetService(serviceType);
    if (service != null) return service;

    return (!serviceType.IsAbstract && !serviceType.IsInterface && serviceType.IsClass) ? _container.GetInstance(serviceType) : _container.TryGetInstance(serviceType);
}