Bir etki alanı modelini seri hale getirmeye çalışıyorum ve dinamik bir proxy'yi POCO'ya dönüştürmem gereken bir sorunla karşılaştım. İncelediğim konu, modeldeki sanal özellikler aracılığıyla dairesel referansların mevcut olduğudur. Serilaştırıcıyı bu özellikleri ayrıştırmamak için [ScriptIgnore]
'u kullanmaya teşebbüs etmeme rağmen, hala geçerli. Bunun, nesnelerin dinamik proxy olduğunu ve ayrıştırıcının girmesine neden olan özelliklerde hala bazı kalıntıların olduğuna (ki bu da bir özyineleme hatası "döngüsel referansa neden olur" diye düşünürüm - yinelemeyi 3 adımla sınırlandırmayı denedim ama "Yinelemeli adımlar aşıldı" hatası.Dinamik proxy'yi POCO'ya nasıl dönüştürebilirim?
Bir nesneyi dinamik proxy'den POCO'ya nasıl dönüştürebilirim böylece serileştirilebilir?
Düzenleme: Basit bir örnek
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);
}
}
Proxy'ler, temsil ettikleri POCO'nun bir alt sınıfıdır. Genel olarak, bunları iyi seri hale getirebilmelisiniz. Serileştiremediğiniz bir sınıfın küçük ancak tam bir örneğini gönderir misiniz? –
@EricJ. - Normal inşa edildiğinde, sınıf serileştirir. Bir örnek gönderebilirim, ancak ne kadar yardım edeceğinden emin değilim çünkü koştuğunda iyi çalışır. Asıl konu, sınıfın ObjectContext'ten veri ile eşleştirilmesidir. Sanal veritabanının içinde hala boş olsalar bile, yine de veritabanına sorguda yer almadıkları için başvurular var. –
Sizi problemler veren sınıfın yapısını görmek, bir miktar ışık tutabilir. –