Как преобразовать динамический прокси в POCO?

Я пытался сериализовать модель домена и столкнулся с проблемой, когда мне нужно преобразовать динамический прокси в 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);
    }
}
6
задан Travis J 5 July 2012 в 18:11
поделиться