Frage

    container.Register(
        AllTypes.Pick().FromAssembly(typeof (UserRepository).Assembly)
            .WithService.FirstInterface());

Derzeit funktioniert der obige Code gut, wenn sich die Schnittstelle ebenfalls in derselben Baugruppe befindet, aber er wird in die Luft jagen, wenn iuSerRepository aus einer anderen Baugruppe stammt.

Ist die Autoregistrierung von zwei verschiedenen Baugruppen möglich? Vermisse ich hier etwas?

War es hilfreich?

Lösung

Ja, es ist möglich, eine Autoregistrierung zu definieren, bei der die Schnittstelle in einer anderen Baugruppe definiert ist. Wir tun es, obwohl wir eine etwas andere Syntax verwenden:

container.Register(AllTypes
    .FromAssemblyContaining<ConfigurationService>()
    .Where(t => t.Name.EndsWith("Service", StringComparison.Ordinal))
    .WithService
    .FirstInterface()
    .Configure(reg => reg.LifeStyle.PerWebRequest));

Ich kann nicht sagen, ob die unterschiedliche API -Verwendung einen Unterschied macht, aber ich würde annehmen, dass dies nicht der Fall ist. Ich würde vielmehr vermuten, dass die Ursache des Fehlers, das Sie erleben, darin besteht, dass die Montage, die die Schnittstelle enthält, nicht verfügbar ist.

Überprüfen Sie, ob Fusion den Typ überhaupt aus dieser Anwendung laden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top