[Mono-dev] serialization of structured data in ArrayList
mirek
Miroslav.Binas at cnl.tuke.sk
Mon Dec 19 04:56:48 EST 2005
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
More information about the Mono-devel-list
mailing list