c# - Deserialize to list -


i using xmlserializer.serialize , xmlserializer.deserialize have class metricresult:

public   class metricresult {         public string metric;         public string newvalue;         public string deltavalue;  } 

and calculating results stored in :

list<metricresult> metricresults = new list<metricresult>(); 

i changed list xml file succefully , in other project need deserialize list there exception thrown :

there-is-an-error-in-xml-document-0-0-during-deserialization 

the xml file


<?xml version="1.0" encoding="utf-8"?> <arrayofmetricresult xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema">   <metricresult>     <metric>numberofdeclaration</metric>     <newvalue>0</newvalue>     <deltavalue>0</deltavalue>   </metricresult>   <metricresult>     <metric>numberofdeclaration</metric>     <newvalue>0</newvalue>     <deltavalue>0</deltavalue>   </metricresult>   <metricresult>     <metric>numberofdeclaration</metric>     <newvalue>0</newvalue>     <deltavalue>0</deltavalue>   </metricresult>   <metricresult>     <metric>numberofdeclaration</metric>     <newvalue>0</newvalue>     <deltavalue>0</deltavalue>   </metricresult>   <metricresult>     <metric>numberofdeclaration</metric>     <newvalue>0</newvalue>     <deltavalue>0</deltavalue>   </metricresult>   <metricresult>     <metric>numberofdeclaration</metric>     <newvalue>0</newvalue>     <deltavalue>0</deltavalue>   </metricresult> </arrayofmetricresult> 

weird, coz following works fine me:

using system; using system.collections.generic; using system.linq; using system.xml; using system.xml.serialization;  public class metricresult {     public string metric { get; set; }     public string newvalue { get; set; }     public string deltavalue { get; set; }  }  class program {     static void main()     {         // define metric results serialize         var metricresults = new[]          {              new metricresult { metric = "metric 1", newvalue = "new value 1", deltavalue = "delta 1" },             new metricresult { metric = "metric 2", newvalue = "new value 2", deltavalue = "delta 2" },             new metricresult { metric = "metric 3", newvalue = "new value 3", deltavalue = "delta 3" },         }.tolist();         var serializer = new xmlserializer(metricresults.gettype());          using (var writer = xmlwriter.create("metrics.xml"))         {             // serialize metric results defined metrics.xml             serializer.serialize(writer, metricresults);         }          using (var reader = xmlreader.create("metrics.xml"))         {             // read metrics.xml , deserialize             metricresults = (list<metricresult>)serializer.deserialize(reader);             foreach (var result in metricresults)             {                 console.writeline("metric: {0}, new value: {1}, delta: {2}", result.metric, result.newvalue, result.deltavalue);             }         }     } } 

and metrics.xml looks expected:

<?xml version="1.0" encoding="utf-8"?> <arrayofmetricresult xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance">   <metricresult>     <metric>metric 1</metric>     <newvalue>new value 1</newvalue>     <deltavalue>delta 1</deltavalue>   </metricresult>   <metricresult>     <metric>metric 2</metric>     <newvalue>new value 2</newvalue>     <deltavalue>delta 2</deltavalue>   </metricresult>   <metricresult>     <metric>metric 3</metric>     <newvalue>new value 3</newvalue>     <deltavalue>delta 3</deltavalue>   </metricresult> </arrayofmetricresult> 

Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -