Ich registriere viele Arten zu meinem Container
, Implementieren aller Arten von Schnittstellen.Überprüfen Sie Autofac-Registrierungen in einem Komponententest
In irgendeiner programmatischen Weise möchte ich einen Komponententest haben, der prüft, ob alle Auflösungen erfolgreich sind, dh es gibt keine zirkulären oder fehlenden Abhängigkeiten in den Registrierungen.
Ich habe versucht, so etwas fügen:
[TestMethod]
public void Resolve_CanResolveAllTypes()
{
foreach (var registration in _container.ComponentRegistry.Registrations)
{
var instance = _container.Resolve(registration.Activator.LimitType);
Assert.IsNotNull(instance);
}
}
Aber es scheitert bei der ersten Ausführung Autofac.Core.Lifetime.LifetimeScope
auf die Lösung, obwohl ich Methoden, die ILifetimeScope
als Parameter akzeptiert und bekommen es ganz gut, wenn meine Anwendung startet.
Welche Linie die Ausnahme auslöst? Welche genaue Ausnahme wird ausgelöst? – mjwills
Die 'Resolve'-Linie. Das Problem bestand darin, dass der Versuch, "LimitType" aufzulösen, falsch ist. Dieser Typ ist der aufgelöste Instanztyp und nicht der registrierte Typ. – Mugen