2
respostas

[Dúvida] Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property...

Os posts funcionam perfeitamente, porém ao fazer um get no filme, recebo o erro Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property 'filme' with type 'Castle.Proxies.FilmeProxy'. Path 'sessions[0]'. O meu código está exatemente igual ao dele, porém estou na versão 7.10, todos os pacotes estão na mesma versão. Tentei colocar opublic virtual ICollection? Sessions { get; set; } como nulo, deu o mesmo erro. Na model da sessões tirei o required do campo FilmeId também não funcionou.

2 respostas

Olá Iagor,

Tu pode tentar usar ReferenceLoopHandling.Ignore:

JsonSerializerSettings jss = new JsonSerializerSettings();
jss.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

var lst = db.shFilm.Where(m => m.Film == id).ToList();
string json = JsonConvert.SerializeObject(lst, jss);

Abraços!

Olá, tudo bem? Também pode ser corrigido diretamente na classe Program.cs:

// Código omitido

// Add services to the container.
builder.Services.AddControllers().AddNewtonsoftJson(opt => { opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; });

// Código omitido