Używanie Simple Injector z SignalR

Myślałem, że używanie własnego IoC byłoby całkiem proste dzięki SignalR i może tak jest; najprawdopodobniej robię coś złego. Oto mój kod do tej pory:

<code>private static void InitializeContainer(Container container)
{

   container.Register<IMongoHelper<UserDocument>, MongoHelper<UserDocument>>();
   // ... registrations like about and then:
   var resolver = new SimpleInjectorResolver(container);
   GlobalHost.DependencyResolver = resolver;
}
</code>

a potem moja klasa:

<code>public class SimpleInjectorResolver : DefaultDependencyResolver
{
    private Container _container;
    public SimpleInjectorResolver(Container container)
    {
        _container = container;
    }

    public override object GetService(Type serviceType)
    {
        return _container.GetInstance(serviceType) ?? base.GetService(serviceType);
    }

    public override IEnumerable<object> GetServices(Type serviceType)
    {
        return _container.GetAllInstances(serviceType) ?? base.GetServices(serviceType);
    }
}
</code>

To co się dzieje, to błąd, że IJavaScriptProxyGenerator nie może zostać rozwiązany, więc myślę, że dodam rejestrację:

<code>container.Register<IJavaScriptProxyGenerator, DefaultJavaScriptProxyGenerator>(
    ConstructorSelector.MostParameters);
</code>

ale wtedy jest mnóstwo innych! Dojde do:

<code>container.Register<IDependencyResolver, SimpleInjectorResolver>();
container.Register<IJavaScriptMinifier, NullJavaScriptMinifier>();
container.Register<IJavaScriptProxyGenerator, DefaultJavaScriptProxyGenerator>(
    ConstructorSelector.MostParameters);
container.Register<IHubManager, DefaultHubManager>();
container.Register<IHubActivator, DefaultHubActivator>();
container.Register<IParameterResolver, DefaultParameterResolver>();
container.Register<IMessageBus, InProcessMessageBus>(ConstructorSelector.MostParameters);
</code>

Co wciąż daje mi „Brak rejestracji dla typuITraceManager można znaleźć. ”... ale teraz zastanawiam się, czy w ogóle robię to dobrze, ponieważ mam nadzieję, że nie będę musiał ponownie podłączać wszystkiego, co robi SignalR ... prawda? Mam nadzieję? Jeśli nie, ja Będę się ciągnął, ale jestem nowicjuszem SignalR i Simple Injector, więc pomyślałem, że najpierw zapytam :)

Dodatkowy:https://cuttingedge.it/blogs/steven/pivot/entry.php?id=88 ponieważ SignalR miał wielu konstruktorów.

questionAnswers(5)

yourAnswerToTheQuestion