2017-11-19 1 views
0

Ich benutze .NET Nancy TinyIoCContainer für Abhängigkeitsinjektion. Ich versuche, eine Schnittstelle und ihre Umsetzung durch Generika zu registrieren, etwa so:TinyIoCContainer Registrierung mit Generika

Register(container, typeof(IUserService), typeof(UserService)); 

private void Register<TInterface, TImplementation>(TinyIoCContainer container) 
         where TInterface : class 
         where TImplementation : class, TInterface 
{ 
    container.Register<TInterface, TImplementation>(); 
} 

Das bin ich die folgende Ausnahme gibt:

kann nicht Typ System.Type registrieren - abstrakte Klassen oder Schnittstellen sind nicht gültige Implementierungstypen für SingletonFactory.

Das schlägt vor, SingletonFactory kann nicht mit Generics arbeiten. Ich habe auch versucht, den Typ als Multi-Instanz zu registrieren:

container.Register<TInterface, TImplementation>().AsMultiInstance(); 

Und ich bekomme die gleiche Ausnahme.

Die nächste Frage, die ich in der Lage habe, ist über eine etwas andere Frage zu finden, generische Schnittstellen: https://github.com/NancyFx/Nancy/issues/2747 und https://github.com/grumpydev/TinyIoC/issues/8

Hat jemand in der Lage, es zu tun (durch Reflexion, vielleicht?). Gibt es alternativ einen IoC-Container, der es aus der Box unterstützt?

Antwort

0

Update:

Sieht aus wie dies eine Marotte von TinyIoCContainer ist. Der Code funktioniert einwandfrei mit UnityContainer.