xmlserializer - XML serializer in C# -


i'm using xmlserializer load objects:

using (filestream filestream = new filestream(filename, filemode.openorcreate, fileaccess.read, fileshare.none)) {     xmlserializer xmlserializer = new xmlserializer(typeof (modeldescriptor));     modeldescriptor = (modeldescriptor) xmlserializer.deserialize(filestream); } 

this load modeldescriptor object data xml file. however, how load multiple objects way? think need loop, there way know ahead of time how many objects there are? invalidoperationexception if overshoot list trying load object xml file isn't there. best way this?

if have multiple modeldescriptor objects in file, in order xml file valid, you'll have have single root element - like:

<root>    <modeldescriptor>        ....    </modeldescriptor>    <modeldescriptor>       ....    </modeldescriptor> </root> 

basically, you'd create dummy "container" class in turn contains list of modeldescriptor objects:

[xmlroot(namespace = "", isnullable = false)] public class root {     [xmlelement("modeldescriptor", form = xmlschemaform.unqualified)]     public list<modeldescriptor> items { get; set; } }  public class modeldescriptor {     public string model { get; set; } } 

now should able deserialize file object of type root , modeldescriptors in items list:

filestream fs = new filestream(@"yourfilenamehere", filemode.open, fileaccess.read);  xmlserializer ser = new xmlserializer(typeof(root));  var result = ser.deserialize(fs); // object of type "root" modeldescriptor inside 

Comments

Popular posts from this blog

c++ - Is it possible to compile a VST on linux? -

java - Output of Eclipse is rubbish -

jquery - Confused with JSON data and normal data in Django ajax request -