C# xml serializácia listu objektov

Programovacie jazyky, rady, poradňa...
Juri1990
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 365
Registrovaný: 25 jan 2006, 10:05
Bydlisko: Bratislava
Kontaktovať používateľa:

C# xml serializácia listu objektov

Príspevok od používateľa Juri1990 »

Zdravím, narazil som na problém, ktorý neviem vyriešiť. Nenapadá vás niečo, lebo som už trochu pozeral po nete, ale nenašiel som zatiaľ nič čo by fungovalo a chápal som čo mám vlastne spraviť. Pri serializácií do xml mi vyhadzuje:

Kód: Vybrať všetko

A first chance exception of type 'System.InvalidOperationException' occurred in System.Xml.dll
Tu mám serializáciu:

Kód: Vybrať všetko

 public class NCdata
    {
        private string filename = "NCdata.xml";
        [XmlElement("Brand")]
        public List<Brand> brands = new List<Brand>();
        public Car one_car = new Car();

        public bool Save()
        {
            if (brands.Count == 0) return false;
            System.Diagnostics.Debug.Write("Start serialiazatin\n");
            XmlSerializer serializer = new XmlSerializer(typeof(List<Brand>));
            FileStream fs = File.OpenWrite(filename);
            XmlTextWriter writer = new XmlTextWriter(fs,System.Text.Encoding.UTF8);
            writer.Formatting = Formatting.Indented;
            //TextWriter textWriter = new StreamWriter(filename);
            try
            {
                serializer.Serialize(writer, brands);
            }
            finally
            {
                writer.Close();
            }
            System.Diagnostics.Debug.Write("Serization complet\n");
            return true;
        }
A tu je ten objekt:

Kód: Vybrať všetko

    [Serializable]
    public class Brand
    {
        public string name;
        [XmlElement("Model")]
        public List<Model> models = new List<Model>();
        [XmlElement("Engine")]
        public List<Engine> engines = new List<Engine>();

        public Brand(string name)
        {
            this.name = name;
        }

        public string GetName
        {
            get { return name; }
        }
    }
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C# xml serializácia listu objektov

Príspevok od používateľa harrison314 »

Pridaj na triedu Brand atribut XmlRoot.
Juri1990
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 365
Registrovaný: 25 jan 2006, 10:05
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C# xml serializácia listu objektov

Príspevok od používateľa Juri1990 »

Vďaka za pomoc, ale veľmi to nepomohlo, stále to robí to isté, som to skúšal aj na ten objekt NCdata s tým, že serializujem celý objekt a nič).

Edit: Tak už som to vyriešil, som bol nepozorný a neuvedomil si, že parameterless construktor, nie je nejaká špeciálna vec, ale že tam jednoduch chýba základný konštruktor.
Napísať odpoveď