インターフェイス インスタンス コレクションの逆シリアル化
例の ClassToSerializeViaJson のように、データをインターフェイスのインスタンスとして保存するのが一般的です。ただし、そのようなコレクションを逆シリアル化すると、質問で述べたようなエラーが発生する可能性があります。
解決策:
この問題を解決するには、Json.Net で逆シリアル化を有効にする追加の構成が必要です。インターフェースのインスタンス.
シリアル化:
string serializedJson = JsonConvert.SerializeObject(objectToSerialize, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple });
逆シリアル化:
var deserializedObject = JsonConvert.DeserializeObject<ClassToSerializeViaJson>(serializedJson, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects });
これらの設定を実装すると、Json.Net はインターフェイス インスタンス コレクションを適切に逆シリアル化でき、元のデータ構造を回復できます。
以上がJson.Net を使用してインターフェイス インスタンスのコレクションを逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。