Mit Einfachen Injektor mit SignalR

Ich dachte, mit meinen eigenen IoC wäre ziemlich straight-forward mit SignalR und vielleicht ist es; wahrscheinlich mache ich etwas falsch. Hier ist mein code, den ich bisher:

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

dann meine Klasse:

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

Was am Ende passiert ist, bekomme ich eine Fehlermeldung, dass IJavaScriptProxyGenerator nicht gelöst werden kann, so dass ich denke, ich werde fügen Sie der Anmeldung:

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

aber dann gibt es ein Bündel von anderen! Ich bekomme:

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

Die gibt mir immer noch "Keine Registrierung für Typ ITraceManager gefunden werden konnte." ... aber nun Frage ich mich, ob ich das Tue Recht, wie ich gehofft, ich würde nicht brauchen, um re-wire alles SignalR ist zu tun...richtig? Hoffentlich? Wenn nicht, behalte ich entlang stapfen, aber ich bin SignalR und Einfache Injektor-newb, so dachte, ich würde zuerst Fragen. 🙂

Zusätzliche: https://cuttingedge.it/blogs/steven/pivot/entry.php?id=88 seit SignalR hatte mehrere Konstruktoren.

InformationsquelleAutor rball | 2012-05-11
Schreibe einen Kommentar