के साथ नामस्थान परिवर्तनों को संभालना मैं JSON.net TypeNameHandling के साथ एक फिक्स में अपना स्वयं का प्रबंधन करने में कामयाब रहा। मैं RavenDB का उपयोग कर एक JSON स्वरूपित ऑब्जेक्ट संग्रहीत कर रहा हूं और मेरे पास मौजूद विरासत संरचना से निपटने के लिए JSON.net serializer के TypeNameHandling को सही पर सेट कर रहा हूं।TypeNameHandling.All
मुझे उस दस्तावेज़ के नामस्थान को बदलने की ज़रूरत है जिसे मैं संग्रहीत कर रहा हूं, इसलिए अब जब यह deserialzed है तो यह त्रुटि "जेएसओएन में निर्दिष्ट प्रकार को हल करने में त्रुटि" त्रुटि को फेंक देता है क्योंकि JSON दस्तावेज़ में प्रकार का संदर्भ अब मौजूद नहीं है ।
क्या किसी प्रकार के रोलिंग माइग्रेशन करने के लिए जेसन deserialization को रोकना संभव है?
धन्यवाद,
उन लोगों के लिए जो इसे हुक अप करने के बारे में सोचते हैं, यह इस तरह है: documentStore.Conventions.CustomizeJsonSerializer = serializer => serializer.Binder = नया नेमस्पेस माइग्रेशनसेरियलाइजेशन बाइंडर (माइग्रेशन); – NeilD
रावेनडीबी में नेमस्पेस माइग्रेशन के लिए यह एक अच्छा समाधान है। बहुत बहुत धन्यवाद!!! – marisks
मुझे लगता है कि आप BindToName को ओवरराइड करना भी चाह सकते हैं, या आपकी बचत में $ type = "" हो सकता है। आप कुछ ऐसा कर सकते हैं: सार्वजनिक ओवरराइड शून्य BindToName (टाइप serialized टाइप, बाहर स्ट्रिंग असेंबलीनाम, बाहर स्ट्रिंग प्रकार नाम) { typeName = serializedType.FullName; असेंबलीनाम = serializedType.Assembly.FullName; – pomarc