json.net - type - self referencing loop detected for property nhibernate
Se detectó un bucle de referencia automática en ASP.NET Core (1)
Esta pregunta ya tiene una respuesta aquí:
- Se detectó un bucle de auto referencia de error JSON.NET para las respuestas de tipo 18
Cuando trato de serializar algunos objetos de dominio usando ASP.NET Core Newsoft JSON.NET, está lanzando una excepción porque está detectando un bucle de referencia automática.
En ASP.NET 4 solíamos arreglarlo globalmente de esta manera: Se detectó un bucle de referencia de error JSON.NET para el tipo
¿Cómo podemos arreglar esto en ASP.NET Core?
No hay diferencia en la forma en que se manejan los bucles de autorreferencia en ASP.NET 4 en comparación con ASP.NET Core (anteriormente Asp.Net 5). Los principios descritos en la pregunta a la que hizo referencia en su publicación aún se aplican. Sin embargo, la configuración de esta propiedad en ASP.NET Core es ligeramente diferente, dado el nuevo método de configuración y arranque de la aplicación:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(options => {
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
services.AddEntityFramework().AddSqlServer().AddDbContext<IvoryPacketDbContext>(
options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])
);
}