Udało mi się samemu naprawić poprawkę za pomocą JSON.net TypeNameHandling. Przechowuję obiekt sformatowany w JSON przy użyciu RavenDB i ustawię TypeNameHandling serializatora JSON.net na wartość true, aby poradzić sobie ze strukturą dziedziczenia, którą posiadam.Obsługa zmian przestrzeni nazw za pomocą TypeNameHandling.All
Potrzebowałem zmienić przestrzeń nazw przechowywanego dokumentu, więc teraz, gdy jest deserialzed, generuje błąd "Błąd rozwiązujący typ określony w JSON", ponieważ odwołanie do typu w dokumencie JSON już nie istnieje .
Czy możliwe jest przechwycenie deserializacji Json w celu przeprowadzenia migracji?
Dzięki,
dla tych, którzy zastanawiają się, jak je podłączyć, to tak: documentStore.Conventions.CustomizeJsonSerializer = serializer => serializer.Binder = new NamespaceMigrationSerializationBinder (migracje); – NeilD
To świetne rozwiązanie do migracji nazw w RavenDB. Wielkie dzięki!!! – marisks
Myślę, że możesz również przesłonić nazwę BindToName, lub twoje zapisy mogą mieć $ type = "". Możesz zrobić coś takiego: publiczne zastąpienie void BindToName (Type serializedType, out ciąg assemblyName, out ciąg typeName) { typeName = serializedType.FullName; assemblyName = serializedType.Assembly.FullName; – pomarc