Usando o injetor simples com SignalR
Eu pensei que usar meu próprio IoC seria bastante direto com SignalR e talvez seja; muito provavelmente estou fazendo algo errado. Aqui está o meu código que tenho até agora:
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;
}
e depois minha aula:
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);
}
}
O que acaba acontecendo é que eu recebo um erro que IJavaScriptProxyGenerator não pode ser resolvido, então eu acho, bem, vou adicionar o registro:
container.Register<IJavaScriptProxyGenerator, DefaultJavaScriptProxyGenerator>(
ConstructorSelector.MostParameters);
mas depois há um monte de outros! Eu chego a:
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);
Que ainda me dá "Nenhum registro para o tipoITraceManager
poderia ser encontrado. "... mas agora eu estou querendo saber se eu estou fazendo isso direito em tudo como eu espero que eu não precise re-fio tudo SignalR está fazendo ... certo? Espero que? Se não eu ' Vou continuar caminhando, mas eu sou um newb SignalR e Simple Injector, então pensei em perguntar primeiro :)
Adicional:https://cuttingedge.it/blogs/steven/pivot/entry.php?id=88 desde SignalR teve vários construtores.