Tom*_*Tom 1 c# signalr signalr-hub
我能够使用我自己的DI与SignalR 1.13一起工作:
//Funq container
GlobalHost.DependencyResolver = new FunqDependencyResolver(container);
RouteTable.Routes.MapHubs();
Run Code Online (Sandbox Code Playgroud)
现在有了新版本2.0,我被困住了.
using Microsoft.Owin;
using Owin;
//SignalR 2.0 no longer uses RouteTable.Routes.MapHubs();
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat {
public class Startup {
public void Configuration(IAppBuilder app) { app.MapSignalR(); }
}
}
Run Code Online (Sandbox Code Playgroud)
(VS2013中的新SignalR 2.0设置截图)

首先,它是从VS2013从屏幕这里.我的VS2012 Pro没有Create New ...-> OWIN Startup类.我手写了一个.但是现在如何调用新的启动类来替换旧的MapHub()函数?
其次,我正在使用运行其余Web项目的DI.我如何现在将signalR注册到我的DI?
编辑--------------------------------------------
问题还有一点.我在Global.asax.cs-> Application_Start()中创建了我的DI容器,但是自动创建并调用了SignalR Startup.cs-> Configuration().如何将DI容器传递给SignalR Startup?
Global.asax.cs(这在应用程序启动时自动运行)
protected void Application_Start(object sender, EventArgs e)
{
var appHost = new AppHost(); //DI init
appHost.Init();
var container = appHost.Container; //DI container here
var resolver = new FunqDependencyResolver(container);
}
Run Code Online (Sandbox Code Playgroud)
SignalRStarter.cs(这也会在应用启动时自动运行)
[assembly: OwinStartup(typeof(WebApp.SignalRStarter))]
namespace WebApp {
public class SignalRStarter {
public FunqDependencyResolver FunqDependencyResolver { get; set; }
public bool EnableDetailedErrors { get; set; }
public void Configuration(IAppBuilder app) {
app.MapSignalR(new HubConfiguration() {
EnableDetailedErrors = EnableDetailedErrors,
Resolver = FunqDependencyResolver
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
您仍然可以像在1.1.3中那样设置依赖项解析器.然而,一个更好的方法(做同样的事情,只是更干净)将是:
app.MapSignalR(new HubConfiguration
{
Resolver = new FunqDependencyResolver(container)
});
Run Code Online (Sandbox Code Playgroud)
注意: app.MapSignalR()是RouteTable.Routes.MapHubs()SignalR 2.0.0+ 的新功能,这意味着您不应再这样做了RouteTable.Routes.MapHubs().
现在关于没有在VS2012中拥有Owin Startup类的问题,那没关系!只需创建一个新的空白类并复制n将代码粘贴到您的类中.无需其他设置.
| 归档时间: |
|
| 查看次数: |
2785 次 |
| 最近记录: |