Usando el inyector simple con SignalR
Pensé que usar mi propio IoC sería bastante sencillo con SignalR y tal vez lo sea; lo más probable es que esté haciendo algo mal. Aquí está mi código que tengo hasta ahora:
<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>
y luego mi clase:
<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>
Lo que termina sucediendo es que recibo el error de que IJavaScriptProxyGenerator no se puede resolver, así que creo que, bueno, agregaré el registro:
<code>container.Register<IJavaScriptProxyGenerator, DefaultJavaScriptProxyGenerator>( ConstructorSelector.MostParameters); </code>
Pero luego hay un montón de otros! Puedo llegar a:
<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>
Lo que todavía me da "Sin registro por tipoITraceManager
podría encontrarse. "... pero ahora me pregunto si estoy haciendo esto correctamente, ya que espero que no tenga que volver a conectar todo lo que SignalR está haciendo ... ¿verdad? ¿Ojalá? Seguiré avanzando con dificultad, pero soy un nuevo SignalB y Simple Injector, así que pensé en preguntar primero. :)
Adicional:https://cuttingedge.it/blogs/steven/pivot/entry.php?id=88 Ya que SignalR tenía múltiples constructores.