我正在尝试配置 MVC 5 应用程序以使用 SignalR 2.2.x 并将服务注入到我的NotificationsHub. 我们正在使用 Autofac 进行 MVC,但我不确定如何正确配置它。NuGetAutofac.Integration.SignalR (3.0.2)和Autofac.Integration.Mvc (3.3.4).
到目前为止我正在做的是通过以下方式注册集线器:
ContainerBuilder builder = new ContainerBuilder();
// Register MVC controllers.
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterType<ServiceForSignalRHub>().AsImplementedInterfaces();
builder.RegisterType<...>().AsImplementedInterfaces();
builder.RegisterHubs(Assembly.GetExecutingAssembly());
IContainer container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Run Code Online (Sandbox Code Playgroud)
然而,对 的调用.SetResolver(...)是不明确的,因为它存在于 MVC 和 SignalR 集成包中。怎么办?我无法确认我的服务的构造函数注入是否适用于我正在使用的集线器。
编辑
我可以使用 Autofac 配置 MVC5。我迷失的是如何使用 Autofac Signal 集成 NuGet 对 SignalR 执行相同的操作。请看下文。
这是我的启动课程:
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
var defaultFactory = LogManager.Use<DefaultFactory>();
defaultFactory.Directory("@D:\\NServiceBus\\ );
defaultFactory.Level(LogLevel.Debug);
var container = …Run Code Online (Sandbox Code Playgroud) dependency-injection autofac signalr signalr-hub asp.net-mvc-5