So konfigurieren Sie Ninject, um mit servicestack.net zu arbeiten
-
14-11-2019 - |
Frage
Beim Versuch, servicestack.net zu konfigurieren, um Ninject als IOC zu verwenden, erhalte ich Fehler, die auf verschiedene Bindungen nicht definiert werden.Hauptsächlich für den icache-Client.
Welche spezifischen Bindungen müssen erstellt werden, um Ninject ordnungsgemäß zu verwenden?
ist derzeit angegeben: generasacodicetagpre.
note
Ich habe ein icontaineradapter gemäß dem Servicestack-Dokument erstellt, um die Verwendung von Ninject umzusetzen. (Hier finden Sie hier: servicestack ioc docs )
note 2 Meine AppHost-Konfiguration-Methode sieht aus wie folgt: generasacodicetagpre.
Ich habe das iCacheclient wie folgt registriert: Binden (). Zu ();
Und ich bekomme jetzt einen Fehler, der auf IREQUEST zeigt generasacodicetagpre.
Containeradapter generasacodicetagpre.
Lösung
Have you injected your Container adapter with:
container.Adapter = new NinjectIocAdapter(kernel);
If so, try also make your AppHost class internal if you haven't done so. There should only be 1 instance of AppHost and some IOC's like to create their own instance, wiping out all the configuration from the first one.
The behavior you're getting sounds like Ninject is complaining about unresolved dependencies. Make sure you get Ninject to return null with Unresolved dependencies by using kernal.TryGet<T>
in your Container Adapter, e.g:
public T TryResolve<T>()
{
return this._kernel.TryGet<T>();
}
Andere Tipps
You need to write your own IContainerAdapter and then set Container.Adapter in your AppHost