С# Сериализовать словарь <ulong, ulong> в JSON

Я пытаюсь сериализовать словарь в JSON и получить следующее исключение:

new JavaScriptSerializer().Serialize(mydict)`

Введите 'System.Collections.Generic.Dictionary`2 [[System.UInt64, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089], [System.Nullable`1 [[System.UInt64, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]], mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]] 'не поддерживается для сериализации/десериализации словаря, ключи должны быть строками или объектов.

Есть ли простой способ сделать это? Может быть, преобразование ulongs в строки через LINQ или что-то относительно краткое?

Ответ 1

var dict = mapping.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString());`

который преобразует любые Dictionary<K,V> в Dictionary<string,string>, и затем сериализация.

Ответ 2

используйте NewtonSoft.Json вместо JavaScriptSerializer для решения этой проблемы:

Пример:

JsonConvert.SerializeObject(mydict);