Wykorzystanie istniejącego kontenera IoC w SignalR 2.0

Jak mogę wykorzystać istniejące IoC z SignalR 2.0?

Z samouczka wydaje się, że muszę ustawić klasę, która będzie wywoływana z OWIN za pomocą atrybutu:

using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app /*HOW AM I GONNA GET UNITY CONTAINER HERE?*/) 
        {
            var hubConfig = new HubConfiguration()
            {
                EnableJSONP = true,
                EnableDetailedErrors = true,
                EnableJavaScriptProxies = true,
                Resolver = new SignalRUnityDependencyResolver(container)  
            };


            // Any connection or hub wire up and configuration should go here
            app.MapSignalR(hubConfig);
        }
    }
}

Problem polega na tym, że mam już kontener, który jest zablokowany i są pojedyncze egzemplarze w kontenerze, które muszą być współdzielone z aplikacją MVC udostępnianą pod tym samym hostem.

Jednak problem polega na tym, że w przeciwieństwie do wcześniejszych, nie wygląda na to, że mogę zadzwonić doMapSignalR metoda z mojego własnego kodu. Raczej muszę polegać na OWIN, aby zrobić to dla mnie. Jednak OWIN nie jest świadomy kontenera, który już skonfigurowałem.

Jaki jest najlepszy sposób rozwiązania tego problemu? Mam kilka bardzo prymitywnych pomysłów, jak zhakować rozwiązanie, używając statycznych zmiennych do przechowywania niektórych z nich - ale nienawidzę samej myśli o tym. Kod będzie kruchy, a kolejność działania może łatwo wprowadzić subtelny błąd.

Czy istnieje sposób na przechwycenie instancji IAppBuilder bez wywołania OWIN powyższej metody? W ten sposób mogę lepiej kontrolować, gdy SignalR zostanie zainicjowany i mogę przekazać własne IoC do konfiguracji.

questionAnswers(1)

yourAnswerToTheQuestion