Pude hacer una corrección con JSON.net TypeNameHandling. Estoy almacenando un objeto con formato JSON usando RavenDB y establezco TypeNameHandling del serializador JSON.net en true para poder manejar una estructura de herencia que tengo en su lugar.Manejando los cambios del espacio de nombres con TypeNameHandling.All
Necesitaba cambiar el espacio de nombre del documento que estoy almacenando, por lo que ahora cuando se deserializa arroja el error "Error al resolver el tipo especificado en JSON" porque la referencia al tipo en el documento JSON ya no existe .
¿Es posible interceptar la deserialización de Json para realizar algún tipo de migración progresiva?
Gracias,
para aquellos que se preguntan cómo conectarlo, es así: documentStore.Conventions.CustomizeJsonSerializer = serializer => serializer.Binder = new NamespaceMigrationSerializationBinder (migrations); – NeilD
Esta es una gran solución para la migración del espacio de nombres en RavenDB. ¡¡¡Muchas gracias!!! – marisks
Creo que es posible que desee sobrescribir BindToName también, o sus rescates pueden tener un $ type = "". Podría hacer algo como: override público void BindToName (Tipo serializedType, out string assemblyName, out string typeName) { typeName = serializedType.FullName; assemblyName = serializedType.Assembly.FullName; – pomarc