Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
tomas
Člen
Avatar
tomas:17.2.2015 18:35

Ahojte. potřebuji serializovat object. Je to windows forms a používám webservice kterou volám pomocí ajaxu. Mám následující třídu.

public partial class Device
{
    public Device()
    {
        this.Assigned_device = new HashSet<Assigned_device>();
    }

    public int id { get; set; }
    public string name { get; set; }
    public string inventory_number { get; set; }
    public string model { get; set; }
    public string serial_number { get; set; }
    public Nullable<int> type_id { get; set; }
    public Nullable<double> price_purchase { get; set; }
    public string currency { get; set; }
    public string document_number { get; set; }
    public Nullable<System.DateTime> date_purchase { get; set; }
    public Nullable<System.DateTime> date_elimination { get; set; }
    public Nullable<int> location_id { get; set; }
    public string note { get; set; }
    public string product_number { get; set; }
    public Nullable<byte> warranty { get; set; }
    public virtual ICollection<Assigned_device> Assigned_device { get; set; }
    public virtual Location Location { get; set; }
    public virtual Type Type { get; set; }
}

Ta třída je vygenerovaná pomocí Linq to entity. Pomocí dotazu si vytvořím object a naplím ho daty z db.

Device deviceDetail = (from dev in db.Devices
                        where dev.id == idDev
                        select dev).Single();

A teď potřebuji tento object serializovat a poslat zpět do stránky pomocí json stringu. Jak na to? Následující kód mě nefunguje, vyhodí to chybu, že při serializaci object byl nalezen kruhový odkaz.

JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(deviceDetail);
Editováno 17.2.2015 18:37
 
Odpovědět 17.2.2015 18:35
Avatar
Odpovídá na tomas
sadlomaslox25:17.2.2015 21:01

Assigned_device nebo Location ma referenci na tridu Device. budto serializuj jen to co je potrebne(anonymni trida nebo implementuj mechanizmuz pri kterem bude problemova property "preskocena") nebo si stahni jiny serializer napr Json.NET ktery to umi vyresit.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 17.2.2015 21:01
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.