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.

La atributo IgnoreSerializableAttribute no se encontró en DefaultContractResolver al cambiar de .NET v4.7.2 a .NET Standard v2.0.

Estoy en proceso de migrar una de nuestras bibliotecas de .NET v4.7.2 a .NET Standard v2.0.

Este código se compila cuando se utiliza .NET v4.7.2

var resolver = new DefaultContractResolver
{
    IgnoreSerializableAttribute = true,
    NamingStrategy = new CamelCaseNamingStrategy(true, true),
};

pero cuando se utiliza .NET Standard no lo hace. Aparentemente IgnoreSerializableAttribute no forma parte de DefaultContractResolver en la versión 9.01 de Newtonsoft.Json cuando se utiliza .NET Standard.

Estoy utilizando la versión 9.01 de Newtonsoft.Json ya que seguimos utilizando las funciones de Azure v1.0 y sólo funcionan con la versión 9.01.

¿Alguien puede explicar qué está sucediendo y por qué hay una diferencia entre Newtonsoft.Json v9.01 en .NET v4.7.2 y .NET Standard v2.0?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que hay una diferencia en la implementación de Newtonsoft.Json v9.01 en .NET v4.7.2 y .NET Standard v2.0, ya que IgnoreSerializableAttribute ya no forma parte de DefaultContractResolver en este último. Esto puede deberse a cambios en la implementación de .NET Standard v2.0, que está destinado a ser una implementación multiplataforma del marco .NET. Es posible que algunas características en .NET v4.7.2 no sean compatibles con .NET Standard v2.0 o se hayan movido a un espacio de nombres diferente. También vale la pena señalar que el uso de v9.01 de Newtonsoft.Json es necesario para la compatibilidad con v1.0 de las funciones de Azure, que pueden tener sus propios requisitos o limitaciones.

Comments are closed.