Diskuze: Serializace objektu

C# .NET .NET (C# a Visual Basic) Serializace objektu American English version English version

Avatar
tomas
Člen
Avatar
tomas:

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:

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.