#c# #database #logging #base
#c# #База данных #ведение журнала #основание
Вопрос:
public void LogAdd(string processName, T item, List<T> items)
{
try
{
LogInfo entity = new LogInfo();
entity.ProcessName = processName;
if (item != null)
entity.Data = new JsonSerializer().Serialize(item);
else if(items.Count!=0)
entity.Data = new JsonSerializer().Serialize(items);
entity.CreateDate = System.DateTime.Now;
Context.Set<LogInfo>().Add(entity);
Context.SaveChanges();
}
catch (Exception exp)
{
}
}
Но entity.Data = new JsonSerializer().Serialize(item);
выдает исключение. Исключение составляет:
«Необработанное исключение типа ‘System.В неизвестном модуле произошло исключение StackOverflowException».
Я хочу преобразовать переменную таблицы базы данных в json? Или другое решение для меня.
Ответ №1:
Вы можете сериализовать с помощью Newtonsoft JsonConvert.SerializeObject
public void LogAdd(string processName, T item, List<T> items)
{
try
{
LogInfo entity = new LogInfo();
entity.ProcessName = processName;
if (item != null)
entity.Data = JsonConvert.SerializeObject(item);
else if(items.Count!=0)
entity.Data = JsonConvert.SerializeObject(items);
entity.CreateDate = System.DateTime.Now;
Context.Set<LogInfo>().Add(entity);
Context.SaveChanges();
}
catch (Exception exp)
{
}
}