Я попытался сериализовать Dictionary<byte[] , int>
с помощью Json.Net, однако он преобразует все байты [] в «System.Byte []». Но если я отменил тип ключа и значение в словаре. Он работает очень хорошо, используя Base64 для сериализации байта []. Мне интересно, почему это не работает для байта []? В чем причина?Почему Json.Net не правильно сериализует байт [], когда он является словарным ключом?
Ниже приведен код, я попробовал:
var dict1 = new Dictionary<byte[], int>
{
[Guid.NewGuid().ToByteArray()] = 1,
[Guid.NewGuid().ToByteArray()] = 2
};
string dict1Json = JsonConvert.SerializeObject(dict1);
Console.WriteLine(dict1Json);
//{ "System.Byte[]":1,"System.Byte[]":2}
var dict2 = new Dictionary<int, byte[]>
{
[1] = Guid.NewGuid().ToByteArray(),
[2] = Guid.NewGuid().ToByteArray()
};
var dict2Json = JsonConvert.SerializeObject(dict2);
Console.WriteLine(dict2Json);
//{ "1":"JgrYtch/6Eq3Nyoe8pnnpg==","2":"KbfVMzjz20yCYvc9FiVKKA=="}