Json.NET を使用して文字列配列を Bson 形式でシリアル化および逆シリアル化しようとしていますが、次のコードは失敗します。
var jsonSerializer = new JsonSerializer();
var array = new string [] { "A", "B" };
// Serialization
byte[] bytes;
using (var ms = new MemoryStream())
using (var bson = new BsonWriter(ms))
{
jsonSerializer.Serialize(bson, array, typeof(string[]));
bytes = ms.ToArray();
}
// Deserialization
using (var ms = new MemoryStream(bytes))
using (var bson = new BsonReader(ms))
{
// Exception here
array = jsonSerializer.Deserialize<string[]>(bson);
}
例外メッセージ:
現在の JSON オブジェクト ({"name":"value"} など) を型 'System.String[]' に逆シリアル化できません。型が正しく逆シリアル化するには JSON 配列 ([1,2,3] など) が必要なためです。
このエラーを修正するには、JSON を JSON 配列 ([1,2,3] など) に変更するか、逆シリアル化された型を通常の .NET 型 (整数のようなプリミティブ型ではなく、コレクション型ではない) に変更します。 JSON オブジェクトから逆シリアル化できる配列またはリスト)。JsonObjectAttribute を型に追加して、強制的に JSON オブジェクトから逆シリアル化することもできます。
どうすればこれを機能させることができますか?