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?