Cannot pass a DependencyResolver to MapSignalR in a HubConfiguration
signalr
Solution
I think Lars Höppner (the user who left the first comment on this post) is right.
You can definitely use a custom dependency resolver without changing `GlobalHost.DependencyResolver` (the SignalR test suite does this quite often), but you have to be sure `GlobalHost` doesn't show up anywhere else in your code.
This means that absolutely no references to:
- GlobalHost.Configuration
- GlobalHost.ConnectionManager
- GlobalHost.TraceManager
- GlobalHost.HubPipeline
- and of course GlobalHost.DependencyResolver
The SO post Lars linked to (SignalR: Sending data using GlobalHost.ConnectionManager not working) shows you how to get the ConnectionManager from your custom dependency resolver; you can do the same thing for all the other properties on GlobalHost.
Problem
I have a MVC 4 app where I'm using SignalR and a dependency injection framework. Thus, I needed to implement a custom DependencyResolver. In order to wire it up, I'm using ``` var resolver = new CustomSignalRDependencyResolver(...); GlobalHost.DependencyResolver = resolver; app.MapSignalR(); ``` and everything works as expected. However, if I use a HubConfiguration object like this: ``` var resolver = new CustomSignalRDependencyResolver(...); app.MapSignalR(new HubConfiguration( { Resolver = resolver }); ``` everything seems to work (the objects are correctly wired-up, there are no errors or warning whatsoever) but the remote methods are not invoked anymore. Can someone explain the difference between the first and the second approach?