如何让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, 从来没有从容器本身。
答案 0 :(得分:2)
我从autofac获得了一个解决方案,但并不完美,但它确实有效:
答案 1 :(得分:0)
值得一试,也许这个新的文档页面可以帮助您找到问题所在: https://code.google.com/p/autofac/wiki/SignalRIntegration