无法使用Autofac将依赖关系注入Signalr Hub

时间:2013-03-14 18:17:28

标签: dependency-injection signalr autofac signalr-hub

如何让Autofac将依赖项注入信号器集线器,我已经尝试过所有现在已经过时的唯一问题,我已经尝试过从他们的网站下载signalr.autofac,但似乎什么都没有用?

我的Autofac

var builder = new ContainerBuilder();
builder.RegisterControllers(typeof(MvcApplication).Assembly);

//Register Context
builder.Register(c => new myContext()).As<IUnitOfWork>().InstancePerLifetimeScope();

//Repositories
builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IBaseRepository<>)).InstancePerHttpRequest();           

//Service Layer
builder.RegisterType<UserService>().As<IUserService>().InstancePerHttpRequest();

//other services etc

builder.RegisterType<ChatHub>(); 

var container = builder.Build();           

DependencyResolver.SetResolver(new AutofacDependencyResolver(container));          

GlobalHost.DependencyResolver = new Autofac.Integration.SignalR.AutofacDependencyResolver(container);
RouteTable.Routes.MapHubs();

我从autofac网站获得的依赖性左轮手枪;

http://code.google.com/p/autofac/downloads/detail?name=Autofac.SignalR.3.0.0.zip

但我得到了;

  

从中可以看到没有与“AutofacWebRequest”匹配的标记的范围   请求实例的范围。这通常表明   正在请求按照HTTP请求注册的组件   一个SingleInstance()组件(或类似的场景。)在网络下   集成始终请求来自的依赖项   DependencyResolver.Current或ILifetimeScopeProvider.RequestLifetime,   从来没有从容器本身。

2 个答案:

答案 0 :(得分:2)

我从autofac获得了一个解决方案,但并不完美,但它确实有效:

http://code.google.com/p/autofac/issues/detail?id=416

答案 1 :(得分:0)

值得一试,也许这个新的文档页面可以帮助您找到问题所在: https://code.google.com/p/autofac/wiki/SignalRIntegration