Pregunta

Tengo una fábrica abstracta registrada para inyección en algunos casos de controlador. ¿Puedo registrar esa fábrica abstracta y usarla como una fábrica de inyección?

Esto es lo que tengo:

public interface ILevelFactory
{
    Levels Create();
}

.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(new InjectionFactory((c) => StaticLevelFactory.GetLevels()))

Situación deseada:

.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(*** look up and use ILevelFactory ***)

En resumen, quiero deshacerme del estaticlevelfactorio.

¿Fue útil?

Solución

Si su ilevelfactory está correctamente registrado:

RegisterType<Levels>(new InjectionFactory((c) => c.Resolve<ILevelFactory>().GetLevels()))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top