[Mono-dev] serialization of structured data in ArrayList

mirek Miroslav.Binas at cnl.tuke.sk
Mon Dec 19 05:30:19 EST 2005


hmm... when i try to serialize simple ArrayList with just primitive 
types (string), there is no problem. the problem is, when i try to 
insert into something structural.

ok - i take a look, if the serialization of the array of cars will work ;)

thanks

mirek
Kornél Pál wrote:

> I never tried to serialize an ArrayList, but I think you had better to
> serialize a strongly typed array of Car objects. An ArrayList is a too
> complex structure. If you need an ArrayList on both sides of 
> serialization,
> you can use the constructor of ArrayList that takes an ICollection. 
> Arrays
> are ICollections so you can pass the received Car[] to the ArrayList
> constructor.
>
> Kornél
>
> ----- Original Message -----
> From: "mirek" <Miroslav.Binas at cnl.tuke.sk>
> To: "mirek" <Miroslav.Binas at cnl.tuke.sk>
> Cc: <mono-devel-list at lists.ximian.com>
> Sent: Monday, December 19, 2005 10:56 AM
> Subject: Re: [Mono-dev] serialization of structured data in ArrayList
>
>
>> when i compile the code below and i run it, i've got the following
>> exception:
>>
>> Unhandled Exception: System.InvalidOperationException: The type Car was
>> not expected. Use the XmlInclude or SoapInclude attribute to specify
>> types that are not known statically.
>>
>> can you help me, how can i solve it? how to serialize the non primitive
>> type (ArrayList with the instances of the Car class)?
>>
>> thanks
>>
>> mirek
>> mirek wrote:
>>
>>> try to compile this code:
>>>
>>> using System;
>>> using System.IO;
>>> using System.Collections;
>>> using System.Xml.Serialization;
>>>
>>> public class Car
>>> {
>>>  public string type;
>>>  public int price;
>>>
>>>  public Car( string type, int price )
>>>  {
>>>     this.type = type;
>>>     this.price = price;
>>>  }
>>> }
>>>
>>> public class Config
>>> {
>>>  static string filename = ".configrc";
>>>
>>>  public ArrayList list;
>>>
>>>  public Config()
>>>  {
>>>     list = new ArrayList();
>>>  }
>>>
>>>  public void Add( string type, int price )
>>>  {
>>>     Car car = new Car( type, price );
>>>     list.Add( car );
>>>  }
>>>
>>>  public void Save( Config config )
>>>  {
>>>     using (FileStream fs = new FileStream(filename, FileMode.Create)) {
>>>        XmlSerializer serializer = new XmlSerializer(typeof(Config));
>>>        serializer.Serialize(fs, config);
>>>     }
>>>  }
>>> }
>>>
>>>
>>> class App
>>> {
>>>  public static void Main()
>>>  {
>>>     Config config = new Config();
>>>     config.Add( "truck", 200 );
>>>     config.Add( "pickup", 100 );
>>>
>>>     Console.WriteLine( "hello" );
>>>
>>>     config.Save( config );
>>>
>>>  }
>>> }
>>>
>>>
>>> mirek
>>>
>>> Robert Jordan wrote:
>>>
>>>> mirek wrote:
>>>>
>>>>> hello
>>>>>
>>>>> i try to use serialization for storing of configuration in my app.
>>>>> the problem is, i've got some data stored in ArrayList, and they are
>>>>> not primitive types - they are instances of classes or some structs.
>>>>> so it looks like this:
>>>>>
>>>>>  [Serializable]
>>>>>  public class Entry
>>>>>  {
>>>>>     public string type;
>>>>>     public int price;
>>>>>   }
>>>>>
>>>>>  [Serializable]
>>>>>  public class CConfiguration
>>>>>  {
>>>>>     ...
>>>>>     public ArrayList vehicle;
>>>>>     ...
>>>>>   }
>>>>>
>>>>>   // in my app...
>>>>>   Entry e = new Entry();
>>>>>   e.type = "truck";
>>>>>   e.price = 200;
>>>>>
>>>>>   vehicle.Add( e );
>>>>>
>>>>> but it doesnt work. how can i do that?
>>>>
>>>>
>>>>
>>>>
>>>> What doesn't work? Did your get an exception? If so, which one?
>>>>
>>>> Robert
>>>>
>>>> _______________________________________________
>>>> Mono-devel-list mailing list
>>>> Mono-devel-list at lists.ximian.com
>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>>
>>>
>>>
>>>
>>>
>>
>>
>> -- 
>> e-mail: mirek at host.sk
>> icq: 113397932
>> jabber: mirek_b at jabber.sk
>> homepage: http://www.intrak.sk/~binas
>>
>> english:
>> Please avoid sending me Word or PowerPoint attachments.
>> See http://www.fsf.org/philosophy/no-word-attachments.html
>>
>> slovak:
>> prosim, neposielajte mi prilohy vo formatoch .doc a .ppt (power point)
>> precitajte si http://www.fsf.org/philosophy/no-word-attachments.cs.html
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>


-- 
e-mail: mirek at host.sk
icq: 113397932
jabber: mirek_b at jabber.sk
homepage: http://www.intrak.sk/~binas

english:
Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html

slovak:
prosim, neposielajte mi prilohy vo formatoch .doc a .ppt (power point)
precitajte si http://www.fsf.org/philosophy/no-word-attachments.cs.html




More information about the Mono-devel-list mailing list