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.