Использование Simple Injector с SignalR

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

private static void InitializeContainer(Container container)
{

   container.Register, MongoHelper>();
   // ... 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 GetServices(Type serviceType)
    {
        return _container.GetAllInstances(serviceType) ?? base.GetServices(serviceType);
    }
}

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

container.Register(
    ConstructorSelector.MostParameters);

, но тогда там Я добираюсь до:

container.Register();
container.Register();
container.Register(
    ConstructorSelector.MostParameters);
container.Register();
container.Register();
container.Register();
container.Register(ConstructorSelector.MostParameters);

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

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

27
задан Steven 4 November 2015 в 10:43
поделиться