Я пытался сериализовать модель домена и столкнулся с проблемой, когда мне нужно преобразовать динамический прокси в POCO. Проблема, с которой я столкнулся, заключалась в том, что циклические ссылки существуют в виде виртуальных свойств в модели. Хотя я пытался использовать [ScriptIgnore]
, чтобы сериализатор не анализировал эти свойства, он все равно это делает. Я считаю, что это связано с тем, что объекты являются динамическими прокси, и в свойствах все еще есть некоторые остатки, которые заставляют синтаксический анализатор входить (, что, в свою очередь, вызывает ошибку рекурсии «циклическая ссылка» -. Я попытался ограничить рекурсию до 3 шагов, но я получил сообщение об ошибке «Превышено число рекурсивных шагов» ).
Как я могу преобразовать объект из динамического прокси в POCO, чтобы его можно было сериализовать?
Редактировать :Простой пример
public class One : BaseViewModel
{
public int OneId { get; set; }
public virtual ICollection<Two> Two { get; set; }
}
public class Two
{
public int TwoId { get; set; }
public int OneId { get; set; }
[ScriptIgnore]
public virtual One One { get; set; }
}
public abstract class BaseViewModel
{
public string AsJson()
{
var serializer = new JavaScriptSerializer();
return serializer.Serialize(this);
}
}