내가 이렇게 내 자신의 DI와 SignalR 1.13 작업을 할 수 있었다 : 는 SignalR 2.0 VS2012 등록 및 의존성 주입
//Funq container
GlobalHost.DependencyResolver = new FunqDependencyResolver(container);
RouteTable.Routes.MapHubs();
지금 새 버전 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(); }
}
}
(VS2013 스크린 샷의 새로운 SignalR 2.0 설정)
첫째, 그것은 here에서 VS2013에서 화면입니다. 내 VS2012 Pro에는 Create New ...-> OWIN Startup 클래스가 없습니다. 필자는 손으로 작성했습니다. 그러나 이제는 예전의 MapHub()
함수를 대체 할 새로운 시작 클래스를 어떻게 호출합니까?
두 번째로, 나머지 웹 프로젝트를 실행하는 DI를 사용하고있었습니다. 내 DI에 signalR을 어떻게 등록합니까?
편집 --------------------------------------------
조금 더 질문드립니다. Global.asax.cs-> Application_Start()에서 DI 컨테이너를 생성하지만 SignalR Startup.cs-> Configuration()이 자동으로 생성되어 호출됩니다. DI 컨테이너를 SignalR Startup으로 전달하려면 어떻게합니까? 당신은 여전히 의존성 해결을 설정할 수 있습니다
[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
});
}
}
}
http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/upgrading-signalr-1x-projects-to-20 – davidfowl