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.

Consumir servicio acotado desde Singleton

Mientras consumo un objeto con ámbito desde un singleton, no obtengo ningún error

Según el siguiente artículo, debería recibir un error tan pronto como comience mi servicio:
https://dotnetcoretutorials.com/2018/03/20/cannot-consume-scoped-service-from-singleton-a-lesson-in-asp-net-core-di-scopes/

Dependencia Registrada:

builder.Services.AddScoped<ILogger, AppLogs>();
builder.Services.AddSingleton<ICacheFactory>(x =>
{
string cacheConnectionString = "xyz";
return new CacheFactory(cacheConnectionString, x.GetService<ILogger>());
});

Consumido:

public class Function1
{
private readonly ICacheFactory cacheProvider;
public Function1(ICacheFactory cacheProvider) {
this.cacheProvider = cacheProvider;
}

[FunctionName(&quot;Function1&quot;)]
public  async Task&lt;IActionResult&gt; Run(
    [HttpTrigger(AuthorizationLevel.Function, &quot;get&quot;, &quot;post&quot;, Route = null)] HttpRequest req,
    ILogger log)
{


    var result = await this.cacheProvider.GetResultsAsync&lt;IEnumerable&lt;string&gt;&gt;(&quot;abc&quot;).ConfigureAwait(false);}

}

¿Cuándo genera un problema una inyección de ámbito en un singleton?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según el artículo enlazado, se produce un problema cuando un ámbito se inyecta en un singleton y el singleton se crea antes del ámbito. En ese caso, el singleton no tiene acceso al servicio de ámbito ya que aún no ha sido creado, lo que resulta en un error.

Comments are closed.