JSON.net TypeNameHandlingを使用して自分自身を修正することができました。 RavenDBを使用してJSON形式のオブジェクトを保存し、JSON.netシリアライザのTypeNameHandlingをtrueに設定して、私が使用している継承構造を処理します。TypeNameHandling.Allで名前空間を変更する処理
保存しているドキュメントの名前空間を変更する必要があったため、逆シリアル化されると、JSONドキュメントの型への参照が存在しなくなったため、エラー "JSONで指定された型のエラーを解決しました" 。
何らかのローリングマイグレーションを行うためにJsonのデシリアライズを傍受することは可能ですか?
ありがとう、
これを接続する方法を知りたい人は、次のようにしてください:documentStore.Conventions.CustomizeJsonSerializer = serializer => serializer.Binder = new NamespaceMigrationSerializationBinder(migrations); – NeilD
これは、RavenDBの名前空間の移行に最適なソリューションです。どうもありがとう!!! – marisks
私はBindToNameも上書きしたいと思うかもしれません、あるいはあなたのセーブに$ type = ""があるかもしれません。あなたは次のようなことができます:public override void BindToName(serializedTypeをタイプし、stringアセンブリ名を出し、typeNameを出力します) { typeName = serializedType.FullName; assemblyName = serializedType.Assembly.FullName; – pomarc