2
respostas

Retirar a redundância cíclica

Quando insiro o código disponibilizado:

builder.Services.Configure<Microsoft.AspNetCore.Http.Json.JsonOptions>(options => options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles);

Para resolver esse problema ele não consegue nem mais se conectar no navegador.

A mensagem de erro:

$exception	{"The service collection cannot be modified because it is read-only."}	System.InvalidOperationException
2 respostas

Olá, Wesley.

Tudo bem?

Sua dúvida é bastante pertinente e esse erro é comum quando tentamos modificar a coleção de serviços após ela já ter sido construída. O erro "The service collection cannot be modified because it is read-only" significa que você está tentando alterar a configuração do serviço após o .NET já ter construído a coleção de serviços.

Normalmente, a configuração dos serviços é feita no método ConfigureServices no arquivo Startup.cs. Aqui é um exemplo de como você pode fazer isso:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers().AddJsonOptions(options => 
    {
        options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
    });
}

Neste exemplo, a configuração do manipulador de referências é adicionada durante a configuração dos controladores, o que ocorre antes da construção da coleção de serviços.

Espero ter entendido e conseguido ajudar. Qualquer dúvida manda aqui de novo. Bons estudos.

Muito obrigado pela ajuda, não entendi muito bem mas me ajudou ver onde estava errando.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software