Domanda

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

Attualmente il codice qui sopra funziona bene se l'interfaccia sono anche nello stesso assembly ma sarà saltare in aria se IUserRepository è da un assembly diverso.

È registrazione automatica da due gruppi diversi possibili? Mi sto perdendo qualcosa qui?

È stato utile?

Soluzione

Si, è possibile definire l'auto-registrazione in cui l'interfaccia è definita in un assembly diverso. Noi lo facciamo, anche se usiamo una sintassi leggermente diversa:

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

Non posso dire se il diverso utilizzo di API fa la differenza, ma presumo che non è così. Piuttosto, direi che la causa dell'errore si verifica è che forse l'assembly contenente l'interfaccia non è disponibile.

Controlla se Fusion può caricare il tipo da tale applicazione a tutti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top