04. november 2004 - 09:28
Der er
3 kommentarer og 1 løsning
XML Serialization af 2D double array
hejsa, nogen der lige hurtigt kan hjælpe mig med en kode stump, til hvordan jeg gør følgende klar til XML Serialization private double[,] resultArray; public double[,] ResultArray { get{return resultArray;} set{resultArray = value;} }
Annonceindlæg fra Barco
04. november 2004 - 11:13
#1
Her er min som den ser ud indtil videre. using System; using System.Xml.Serialization; [System.Xml.Serialization.XmlRootAttribute()] public class Result { private string modelName; private int n; private double[][] resultArray; public Result() { // // TODO: Add constructor logic here // } [XmlArrayItem("test", typeof(double[]))] public double[][] ResultArray { get{return resultArray;} set{resultArray = value;} } [XmlElementAttribute()] public string ModelName { get{return modelName;} set{modelName = value;} } [XmlElementAttribute()] public int N { get{return n;} set{n = value;} } }
04. november 2004 - 11:14
#2
using System.Collections; using System.IO; using System.Xml; using System.Xml.Serialization; /// <summary> /// Summary description for Class1. /// </summary> class Start { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { Result rs = new Result(); rs.ModelName = "Markov Chain"; rs.N = 2; double[][] test = new double[3][]; test[0] = new double[] { 0.10, 0.20, 0.10, 0.50, 0.20}; test[1] = new double[] { 0.13, 0.24, 0.20, 0.50, 0.30}; test[2] = new double[] { 0.14, 0.23, 0.60, 0.70, 0.70}; XmlSerializer serializer = new XmlSerializer(typeof(Result)); TextWriter tr = new StreamWriter("test2.xml"); serializer.Serialize(tr, test); tr.Close(); } }
04. november 2004 - 11:18
#3
ovenstående resultere i at visual studio bruger alle resourserne og den aldrig generere en xml fil. Jeg har også ændre [,] til [][] da jeg har læst mig frem til at det ikke er muligt at bruge [,] Hov glemte lidt kode. indsæt rs.ResultArray = test; inden XmlSerializer............
04. november 2004 - 12:09
#4
Løste det selv. Her er den korrekte kode, hvis nogen skulle være interesseret. Result.cs using System; using System.Xml.Serialization; [System.Xml.Serialization.XmlRootAttribute()] public class Result { private string modelName; private int n; private double[][] resultArray; public Result() { // // TODO: Add constructor logic here // } [XmlArrayItem("test", typeof(double[]))] public double[][] ResultArray { get{return resultArray;} set{resultArray = value;} } [XmlElementAttribute()] public string ModelName { get{return modelName;} set{modelName = value;} } [XmlElementAttribute()] public int N { get{return n;} set{n = value;} } } Main.cs using System; using System.Collections; using System.IO; using System.Xml; using System.Xml.Serialization; /// <summary> /// Summary description for Class1. /// </summary> class Start { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { Result rs = new Result(); rs.ModelName = "Markov Chain"; rs.N = 2; double[][] test = new double[3][]; test[0] = new double[] { 0.10, 0.20, 0.10, 0.50, 0.20}; test[1] = new double[] { 0.13, 0.24, 0.20, 0.50, 0.30}; test[2] = new double[] { 0.14, 0.23, 0.60, 0.70, 0.70}; rs.ResultArray = test; try { XmlSerializer serializer = new XmlSerializer(typeof(Result)); TextWriter tr = new StreamWriter("test2.xml"); serializer.Serialize(tr, rs); tr.Close(); } catch(Exception e) { Console.WriteLine(e.ToString()); } Result newrs = new Result(); FileStream f = new FileStream("test2.xml", FileMode.Open); XmlSerializer newSr = new XmlSerializer(typeof(Result)); newrs = (Result)newSr.Deserialize(f); f.Close(); Console.WriteLine(newrs.ModelName); Console.WriteLine(newrs.N); } }
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.