es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Equivalente de tiempo de vida de LightInject en el contenedor de inyección de dependencias .netcore.

Migración de ‘LightInject’ al contenedor de inyección de dependencias .netcore.

¿Cuáles son los registros equivalentes de ‘LightInject’ en el contenedor de inyección de dependencias de .netcore?

a. container.RegisterConstructorDependency((factory, parameterInfo) => new Bar());

b. container.RegisterInstance<><string, string=””>>(
(username, password) => new MemCache(userId, password, container.GetInstance()));
</string,>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para migrar de LightInject al contenedor DI de .netcore, estos son los registros equivalentes relacionados con LightInject:

    a. container.RegisterConstructorDependency<ibar>((factory, parameterInfo) => new Bar());

    El equivalente en el contenedor DI de .netcore sería:

    services.AddTransient<ibar>(provider => new Bar());
    

    b. container.RegisterInstance<><string, string="">>((username, password) => new MemCache(userId, password, container.GetInstance<ibusinesslogic>()));

    El equivalente en el contenedor DI de .netcore sería:

    services.AddSingleton<><string, string="">>(provider => 
        (username, password) => new MemCache(userId, password, provider.GetService<ibusinesslogic>()));
    

    Tenga en cuenta que en el segundo registro, estamos utilizando AddSingleton porque estamos registrando una instancia de Func que se puede llamar varias veces para crear diferentes instancias de MemCache. Además, .GetInstance<t>() en LightInject es equivalente a .GetService<t>() en el contenedor DI de .netcore.</string,></string,>

Comments are closed.