У меня есть мой объект, как показано ниже
public class CustomizedObject
{
public int KeyId { get; set; }
public string SomeName { get; set; }
public DateTime StartDate { get; set; }
public bool isPossible { get; set; }
//Below dictionary is hug contains more than 300k rows (300*1000)
public Dictionary<string, SomBigObject> BigObjectMap { get; set; }
}
public class SomBigObject
{
//This object has so many properties of all type (int, float, datetime, enum, double, bool)
//+ another customized user object Lists
}
Я пытаюсь сериализовать этот объект, используя библиотеку newtonsoft json в C#, используя настройки ниже.
var settings = new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
NullValueHandling = NullValueHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
Formatting = Formatting.Indented
};
var json = JsonConvert.SerializeObject(value, settings);
Но это Исключение нехватки памяти. Если я уменьшу количество строк до небольшого числа, например, 100 тыс. Строк, то все будет работать нормально.
После исключения из памяти на моем компьютере останется 5 ГБ ОЗУ.
После сериализации этого объект, я хочу сохранить его в распределенном кэше (Apache Ignite).
Пожалуйста, дайте мне знать, какие альтернативы я могу попытаться решить эту проблему.