Использование простого инжектора с SignalR

Я думал, что использовать мой собственный IoC было бы довольно просто с SignalR, и, возможно, так оно и есть; скорее всего я что то не так делаю. Вот мой код, который у меня есть:

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;
}

а потом мой класс:

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);
    }
}

Что в итоге происходит, если я получаю ошибку, что IJavaScriptProxyGenerator не может быть решен, поэтому я думаю, что ж, я добавлю регистрацию:

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

но тогда есть куча других! Я добираюсь до:

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);

Который все еще дает мне "Нет регистрации для типаITraceManager можно найти. "... но теперь мне интересно, правильно ли я все делаю, так как надеюсь, что мне не понадобится перепечатывать все, что делает SignalR ... правильно? Надеюсь? Если нет, то я Я буду продолжать блуждать, но я новичок в SignalR и Simple Injector, поэтому подумал, что сначала спрошу.

Дополнительно:https: //cuttingedge.it/blogs/steven/pivot/entry.php ID = 88 поскольку у SignalR было несколько конструкторов.

Ответы на вопрос(5)

Ваш ответ на вопрос