5

Tengo una fábrica abstracta registrada para inyección en algunas instancias de controlador. ¿Puedo registrar esa fábrica abstracta y utilizarla como fábrica de inyección?¿Cómo utilizar la fábrica abstracta como fábrica de inyección en Unity?

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, quieren deshacerse de la StaticLevelFactory.

Respuesta

6

Si su ILevelFactory está registrado correctamente:

RegisterType<Levels>(new InjectionFactory((c) => c.Resolve<ILevelFactory>().GetLevels())) 
+0

Nice! Gracias. :) –

Cuestiones relacionadas