public void decode(ref Clase07ClaseConTodo c, String aux) { int ele1 = 0; int numEle1 = 0; String ele2 = ""; int numEle2 = 0; }
public Clase07ClaseConTodo decode(string aux) { int ele1 = 0; int numEle1 = 0; String ele2 = ""; int numEle2 = 0; Clase07ClaseConTodo c = new Clase07ClaseConTodo(); return(c); }
public Clase07ClaseConTodo decode(string aux) { int ele1 = 0; int numEle1 = 0; String ele2 = ""; int numEle2 = 0; Clase07ClaseConTodo c = new Clase07ClaseConTodo(); return c; }
protected Clase07ClaseConTodo decodificarClase07(String s) { Clase07ClaseConTodo cOut = new Clase07ClaseConTodo(); watch.Restart(); Decodificador07A dec1A = new Decodificador07A(); for (int i = 0; i < this.veces; i++) { cOut = dec1A.decode(s); } watch.Stop(); Console.WriteLine("Decodificación clase con todo A: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); Decodificador07B dec1B = new Decodificador07B(); for (int i = 0; i < this.veces; i++) { Clase07ClaseConTodo cAux1B = new Clase07ClaseConTodo(); dec1B.decode(ref cAux1B, s); } watch.Stop(); Console.WriteLine("Decodificación clase con todo B: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); Type t = typeof(Fase02.Clase07ClaseConTodo); for (int i = 0; i < this.veces; i++) { Clase07ClaseConTodo aux = (Clase07ClaseConTodo)s.decodificar(t); } watch.Stop(); Console.WriteLine("Decodificación clase con todo C: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); for (int i = 0; i < this.veces; i++) { SerializerStatic.decode(ref cOut, s); } watch.Stop(); Console.WriteLine("Decodificación clase con todo D: " + watch.ElapsedMilliseconds + " milisegundos"); return(cOut); }
protected String codificarClase07(Clase07ClaseConTodo c) { String sAux = ""; watch.Restart(); Codificador07A codA = new Codificador07A(); for (int i = 0; i < this.veces; i++) { sAux = codA.encode(ref c); } watch.Stop(); Console.WriteLine("Codificación de clase con todo A: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); Codificador07B codB = new Codificador07B(); for (int i = 0; i < this.veces; i++) { sAux = codB.encode(ref c); } watch.Stop(); Console.WriteLine("Codificación de clase con todo B: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); for (int i = 0; i < this.veces; i++) { sAux = c.codificar(); } watch.Stop(); Console.WriteLine("Codificación de clase con todo C: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); for (int i = 0; i < this.veces; i++) { sAux = SerializerStatic.encode(c); } watch.Stop(); Console.WriteLine("Codificación de clase con todo D: " + watch.ElapsedMilliseconds + " milisegundos"); return(sAux); }
public String encode(ref Clase07ClaseConTodo c) { int ele1 = 0; int numEle1 = 0; String ele2 = ""; int numEle2 = 0; ele2 = c.publicInt + "," + c.basePublicInt; foreach (int elemento in c.publicArrayInt) { ele1 += elemento; numEle1++; } foreach (int elemento in c.publicArray2DInt) { ele2 += elemento; numEle2++; } foreach (int[] elemento in c.publicArrayMatrizEscalonadaInt) { foreach (int elemento2 in elemento) { ele2 += elemento2; numEle2++; } } foreach (int elemento in c.lista) { ele2 += elemento; numEle2++; } return(string.Format("{0},{1},{2},{3}", ele1, numEle1, ele2, numEle2)); }
public String encode(ref Clase07ClaseConTodo c) { int ele1 = 0; int numEle1 = 0; String ele2 = ""; int numEle2 = 0; ele2 = c.publicInt + "," + c.basePublicInt; foreach (int elemento in c.publicArrayInt) { ele1 += elemento; numEle1++; } foreach (int elemento in c.publicArray2DInt) { ele2 += elemento; numEle2++; } foreach (int[] elemento in c.publicArrayMatrizEscalonadaInt) { foreach (int elemento2 in elemento) { ele2 += elemento2; numEle2++; } } foreach (int elemento in c.lista) { ele2 += elemento; numEle2++; } return string.Format("{0},{1},{2},{3}", ele1, numEle1, ele2, numEle2); }
public void decodificar(string codigo, ref Fase02.Clase07ClaseConTodo obj) { decode(ref codigo, ref obj); }
protected String codificarClase07(Clase07ClaseConTodo c) { String sAux = ""; watch.Restart(); Codificador07A codA = new Codificador07A(); for (int i = 0; i < this.veces; i++) { sAux = codA.encode(ref c); } watch.Stop(); Console.WriteLine("Codificación de clase con todo A: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); Codificador07B codB = new Codificador07B(); for (int i = 0; i < this.veces; i++) { sAux = codB.encode(ref c); } watch.Stop(); Console.WriteLine("Codificación de clase con todo B: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); for (int i = 0; i < this.veces; i++) { sAux = c.codificar(); } watch.Stop(); Console.WriteLine("Codificación de clase con todo C: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); for (int i = 0; i < this.veces; i++) { sAux = SerializerStatic.encode(c); } watch.Stop(); Console.WriteLine("Codificación de clase con todo D: " + watch.ElapsedMilliseconds + " milisegundos"); return sAux; }
public string benchmarkClase07ClaseConTodo() { string linea1 = ""; string linea2 = ""; FileStream fs; /* * 07. Clase con todo */ linea1 += "Clase07ClaseConTodo (Encode);"; linea2 += "Clase07ClaseConTodo (Decode);"; Console.WriteLine("============== Clase con todo (Clase07ClaseConTodo) ==============\r\n"); // Instanciando y rellenando campos Clase07ClaseConTodo c1 = new Clase07ClaseConTodo(); Clase07ClaseConTodo c1decoded; // - XMLSerializer #region XMLSerializer linea1 += ";"; linea2 += ";"; /* XmlSerializer serializer = new XmlSerializer(typeof(Clase07ClaseConTodo)); TextWriter writer = new StreamWriter("fichero.txt"); watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { serializer.Serialize(writer, c1); } watch.Stop(); writer.Close(); // Repetimos una sola vez para generar el fichero co una única serialización writer = new StreamWriter("fichero.txt"); serializer.Serialize(writer, c1); writer.Close(); Console.WriteLine("Codificación Clase07ClaseConTodo con XMLSerializer: " + watch.ElapsedMilliseconds + " milisegundos"); linea1 += watch.ElapsedMilliseconds + ";"; watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { fs = new FileStream("fichero.txt", FileMode.Open); c1decoded = (Clase07ClaseConTodo)serializer.Deserialize(fs); fs.Close(); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con XMLSerializer: " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; */ #endregion // - BinaryFormatter #region BinaryFormatter Console.WriteLine("Serialización con BinaryFormatter"); // Construct a BinaryFormatter and use it to serialize the data to the stream. BinaryFormatter formatter = new BinaryFormatter(); try { long tiempoTotal = 0; for (int i = 0; i < veces; i++) { fs = new FileStream("BinaryFormatter.dat", FileMode.Create); watch.Restart(); // Comienza a contar el tiempo formatter.Serialize(fs, c1); watch.Stop(); tiempoTotal += watch.ElapsedMilliseconds; fs.Close(); } Console.WriteLine("Codificación Clase07ClaseConTodo con BinaryFormatter: " + tiempoTotal + " milisegundos"); linea1 += tiempoTotal + ";"; } catch (SerializationException e) { Console.WriteLine("Failed to serialize. Reason: " + e.Message); throw; } fs = new FileStream("BinaryFormatter.dat", FileMode.Open); try { watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { c1decoded = (Clase07ClaseConTodo)formatter.Deserialize(fs); fs.Close(); fs = new FileStream("BinaryFormatter.dat", FileMode.Open); } watch.Stop(); fs.Close(); Console.WriteLine("Decodificación Clase07ClaseConTodo con BinaryFormatter: " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; } catch (SerializationException e) { Console.WriteLine("Failed to deserialize. Reason: " + e.Message); throw; } finally { fs.Close(); } #endregion // - SOAPFormatter #region SOAPFormatter Console.WriteLine("Serialización con SOAPFormatter"); FileStream fs3 = new FileStream("DataFile.soap", FileMode.Create); fs3.Close(); SoapFormatter soapFormatter = new SoapFormatter(); try { long tiempoTotal = 0; for (int i = 0; i < veces; i++) { fs3 = new FileStream("DataFile.soap", FileMode.Create); watch.Restart(); // Comienza a contar el tiempo soapFormatter.Serialize(fs3, c1); watch.Stop(); tiempoTotal += watch.ElapsedMilliseconds; fs3.Close(); } Console.WriteLine("Codificación Clase07ClaseConTodo con SOAPFormatter: " + tiempoTotal + " milisegundos"); linea1 += tiempoTotal + ";"; } catch (SerializationException e) { Console.WriteLine("Failed to serialize. Reason: " + e.Message); throw; } fs3 = new FileStream("DataFile.soap", FileMode.Open); try { watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { c1decoded = (Clase07ClaseConTodo)soapFormatter.Deserialize(fs3); fs3.Close(); fs3 = new FileStream("DataFile.soap", FileMode.Open); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con SOAPFormatter: " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; } catch (SerializationException e) { Console.WriteLine("Failed to deserialize. Reason: " + e.Message); throw; } finally { fs3.Close(); } #endregion // DataContractSerializer #region DataContractSerializer Console.WriteLine("Serialización con DataContractSerializer"); MemoryStream stream1 = new MemoryStream(); MemoryStream stream2 = new MemoryStream(); //Serialize the Record object to a memory stream using DataContractSerializer. DataContractSerializer DCserializer = new DataContractSerializer(typeof(Clase07ClaseConTodo)); watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { DCserializer.WriteObject(stream1, c1); if (i == 0) { stream1.Position = 0; stream1.CopyTo(stream2, (int)stream1.Length); } } watch.Stop(); Console.WriteLine("Codificación Clase07ClaseConTodo con DataContractSerializer: " + watch.ElapsedMilliseconds + " milisegundos"); linea1 += watch.ElapsedMilliseconds + ";"; watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { stream2.Position = 0; //Deserialize the Record object back into a new record object. c1decoded = (Clase07ClaseConTodo)DCserializer.ReadObject(stream2); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con DataContractSerializer: " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; #endregion DataContractSerializer // SharpSerializer (XML) #region SharpSerializer Console.WriteLine("Serialización con SharpSerializer (XML)"); var SharpSerializer = new SharpSerializer(); watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { SharpSerializer.Serialize(c1, "SharpSerializer.xml"); } watch.Stop(); Console.WriteLine("Codificación Clase07ClaseConTodo con SharpSerializer (XML): " + watch.ElapsedMilliseconds + " milisegundos"); linea1 += watch.ElapsedMilliseconds + ";"; watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { c1decoded = (Clase07ClaseConTodo)SharpSerializer.Deserialize("SharpSerializer.xml"); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con SharpSerializer (XML): " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; #endregion SharpSerializer // SharpSerializer (Binario) #region SharpSerializer Console.WriteLine("Serialización con SharpSerializer (Binario)"); var SharpSerializer2 = new SharpSerializer(true); watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { SharpSerializer2.Serialize(c1, "SharpSerializer.dat"); } watch.Stop(); Console.WriteLine("Codificación Clase07ClaseConTodo con SharpSerializer (Binario): " + watch.ElapsedMilliseconds + " milisegundos"); linea1 += watch.ElapsedMilliseconds + ";"; watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { c1decoded = (Clase07ClaseConTodo)SharpSerializer2.Deserialize("SharpSerializer.dat"); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con SharpSerializer (Binario): " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; #endregion SharpSerializer // Protobuf #region Protobuf /* linea1 += ";"; linea2 += ";"; */ Console.WriteLine("Serialización con Protobuf"); Stream protoStream = new MemoryStream(); Stream protoStream2 = new MemoryStream(); watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { ProtoBuf.Serializer.Serialize(protoStream, c1); if (i == 0) { protoStream2.Position = 0; stream1.CopyTo(protoStream2, (int)protoStream.Length); } } watch.Stop(); Console.WriteLine("Codificación Clase07ClaseConTodo con Protobuf: " + watch.ElapsedMilliseconds + " milisegundos"); linea1 += watch.ElapsedMilliseconds + ";"; watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { protoStream.Position = 0; c1decoded = ProtoBuf.Serializer.Deserialize<Clase07ClaseConTodo>(protoStream2); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con Protobuf: " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; #endregion Protobuf // - Nuestro proyecto en CSV #region NuestroProyecto(CSV) Console.WriteLine("Serialización con nuestro proyecto (CSV)"); // Generando el serializador a partir del tipo Generador g1 = new Generador(c1.GetType()); dynamic serializador1 = g1.getSerializer(); string str = ""; if (serializador1 != null) { watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { str = serializador1.codificar(c1); // strSerializado = Clase07ClaseConTodoCodec.codificar(c1); } watch.Stop(); Console.WriteLine("Codificación Clase07ClaseConTodo con nuestro proyecto (CSV): " + watch.ElapsedMilliseconds + " milisegundos"); Console.WriteLine("Texto codificado (CSV): " + str); linea1 += watch.ElapsedMilliseconds + ";"; c1decoded = new Clase07ClaseConTodo(); c1decoded.basePublicInt = 0; c1decoded.lista = new List<int>(); c1decoded.publicArray2DInt = null; c1decoded.publicArrayInt = null; c1decoded.publicArrayMatrizEscalonadaInt = null; c1decoded.publicInt = 0; c1decoded.publicStaticColores = Clase07ClaseConTodo.colores.ROJO; watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { serializador1.decodificar(str, ref c1decoded); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con nuestro proyecto (CSV): " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; } else { Console.WriteLine("Error generando el serializador"); } #endregion NuestroProyecto(CSV) // - Nuestro proyecto en XML #region NuestroProyecto(XML) Console.WriteLine("Serialización con nuestro proyecto en XML"); // Generando el serializador a partir del tipo g1 = new Generador(c1.GetType(), "XML"); serializador1 = g1.getSerializer(); if (serializador1 != null) { watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { str = serializador1.codificar(c1); } watch.Stop(); Console.WriteLine("Codificación Clase07ClaseConTodo con nuestro proyecto (XML): " + watch.ElapsedMilliseconds + " milisegundos"); Console.WriteLine("Texto codificado (XML): " + str); linea1 += watch.ElapsedMilliseconds + ";"; c1decoded = new Clase07ClaseConTodo(); watch.Restart(); // Comienza a contar el tiempo for (int i = 0; i < veces; i++) { serializador1.decodificar(str, ref c1decoded); } watch.Stop(); Console.WriteLine("Decodificación Clase07ClaseConTodo con nuestro proyecto (XML): " + watch.ElapsedMilliseconds + " milisegundos"); linea2 += watch.ElapsedMilliseconds + ";"; } else { Console.WriteLine("Error generando el serializador"); } return linea1 + "\r\n" + linea2; #endregion NuestroProyecto(XML) }
protected Clase07ClaseConTodo decodificarClase07(String s) { Clase07ClaseConTodo cOut = new Clase07ClaseConTodo(); watch.Restart(); Decodificador07A dec1A = new Decodificador07A(); for (int i = 0; i < this.veces; i++) { cOut = dec1A.decode(s); } watch.Stop(); Console.WriteLine("Decodificación clase con todo A: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); Decodificador07B dec1B = new Decodificador07B(); for (int i = 0; i < this.veces; i++) { Clase07ClaseConTodo cAux1B = new Clase07ClaseConTodo(); dec1B.decode(ref cAux1B, s); } watch.Stop(); Console.WriteLine("Decodificación clase con todo B: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); Type t = typeof(Fase02.Clase07ClaseConTodo); for (int i = 0; i < this.veces; i++) { Clase07ClaseConTodo aux = (Clase07ClaseConTodo)s.decodificar(t); } watch.Stop(); Console.WriteLine("Decodificación clase con todo C: " + watch.ElapsedMilliseconds + " milisegundos"); watch.Restart(); for (int i = 0; i < this.veces; i++) { SerializerStatic.decode(ref cOut, s); } watch.Stop(); Console.WriteLine("Decodificación clase con todo D: " + watch.ElapsedMilliseconds + " milisegundos"); return cOut; }
static void Main(string[] args) { Program p = new Program(); p.watch = new System.Diagnostics.Stopwatch(); /* * 01. Clase básica */ Clase01Basica c1 = new Clase01Basica(); Clase01Basica c1decoded; /* * c1.var1 = 1; * c1.var2 = "2"; */ Console.WriteLine("Clase con dos atributos"); s = p.codificarClase01(c1); c1decoded = p.decodificarClase01(s); Console.WriteLine("=================="); /* * 02. Clase con arrays */ Clase02ArrayNormal c2 = new Clase02ArrayNormal(); Clase02ArrayNormal c2decoded; Console.WriteLine("Clase con arrays"); s = p.codificarClase02(c2); c2decoded = p.decodificarClase02(s); Console.WriteLine("=================="); /* * 03. Clase con arrays */ Clase03Array c3 = new Clase03Array(); Clase03Array c3decoded; c3.var1 = new int[1]; for (int i = 0; i < 1; i++) { c3.var1[i] = i; } c3.var2 = new string[2]; for (int i = 0; i < 2; i++) { c3.var2[i] = Convert.ToString(i); } /* * c3.var3 = new int[3, 4]; * for (int i = 0; i < 3; i++) * { * for (int j = 0; j < 4; j++) * { * c3.var3[i,j] = i+j; * } * } * * c3.var4 = new int[4, 5, 6]; * for (int i = 0; i < 4; i++) * { * for (int j = 0; j < 5; j++) * { * for (int k = 0; k < 6; k++) * { * c3.var4[i, j, k] = i + j + k; * } * } * } * * c3.var5 = new int[4][]; * for (int i = 0; i < 4; i++) * { * int[] aux = new int[5]; * for (int j = 0; j < 5; j++) * { * aux[j] = j; * } * c3.var5[i] = aux; * } */ Console.WriteLine("Clase con cinco arrays"); s = p.codificarClase03(c3); c3decoded = (Clase03Array)p.decodificarClase03(s); Console.WriteLine("=================="); /* * 04. Clase con una estructura */ Clase04Struct c4 = new Clase04Struct(); c4.valor3 = new Clase04Struct.estructura(1, "2"); Clase04Struct c4decoded; Console.WriteLine("Clase con un atributo Struct"); s = p.codificarClase04(c4); c4decoded = p.decodificarClase04(s); Console.WriteLine("=================="); /* * 05. Clase con una clase */ Clase05Clase c5 = new Clase05Clase(); Clase05Clase.ClaseInterna c5int = new Clase05Clase.ClaseInterna(); c5int.var1 = 1; c5int.var2 = "2"; c5.var3 = c5int; Clase05Clase c5decoded; s = p.codificarClase05(c5); c5decoded = p.decodificarClase05(s); Console.WriteLine("=================="); /* * 06. Clase con una clase derivada */ Clase06ClaseDerivada c6 = new Clase06ClaseDerivada(); c6.var1 = 1; c6.var2 = "2"; c6.var3 = 3; Clase06ClaseDerivada c6decoded; s = p.codificarClase06(c6); c6decoded = p.decodificarClase06(s); Console.WriteLine("=================="); /* * 07. Clase con todo */ Clase07ClaseConTodo c7 = new Clase07ClaseConTodo(); c7.basePublicInt = 1; c7.lista = new List <int>(); c7.lista.Add(1); c7.lista.Add(2); c7.publicArray2DInt = new int[1, 2]; c7.publicArray2DInt[0, 0] = 1; c7.publicArray2DInt[0, 1] = 1; c7.publicArrayInt = new int[3]; c7.publicArrayInt[0] = 1; c7.publicArrayInt[1] = 2; c7.publicArrayInt[2] = 3; c7.publicArrayMatrizEscalonadaInt = new int[2][]; int[] arrayAaux = new int[3]; arrayAaux[0] = 1; arrayAaux[1] = 2; arrayAaux[2] = 3; c7.publicArrayMatrizEscalonadaInt[0] = arrayAaux; c7.publicArrayMatrizEscalonadaInt[1] = arrayAaux; c7.publicInt = 30; Clase07ClaseConTodo c7decoded; Console.WriteLine("Clase con todo"); s = p.codificarClase07(c7); c7decoded = p.decodificarClase07(s); Console.WriteLine("=================="); /* * 01. Struct básica * Struct01Basica s1 = new Struct01Basica(); * s1.var1 = 1; * s1.var2 = "2"; * * p.codificarStruct01(s1); * Object c1decodedAux_ = p.decodificarStruct01(1, "2"); * * p.watch.Restart(); * Struct01Basica c1decoded_ = (Struct01Basica)c1decodedAux_; * p.watch.Stop(); * Console.WriteLine("Tiempo de conversión de objeto: " + p.watch.ElapsedMilliseconds + " milisegundos"); */ Console.ReadLine(); }
public static void decode(ref String codigo, ref Fase02.Clase07ClaseConTodo obj) { int count; Type tipo; Type type; int rango; string nombre; XmlDocument xml = new XmlDocument(); /* * Aquí va el control de errores del documento XML */ xml.LoadXml(codigo); XmlNode nodoPrincipal = xml.SelectSingleNode("elementos"); XmlNodeReader nr = new XmlNodeReader(nodoPrincipal); nr.Read(); // Elementos nr.Read(); // Elemento nr.Read(); // Nombre o null (si el miembro es null no hay más información de él) if (nr.Value != "null") { nr.Read(); // Nombre nr.Read(); // Nombre nr.Read(); // Tipo nr.Read(); // Tipo nr.Read(); // Tipo nr.Read(); // Valor nr.Read(); // Valor del campo o propiedad obj.publicInt = Int32.Parse(nr.Value); nr.Read(); // Valor } nr.Read(); // Elemento nr.Read(); // Elemento nr.Read(); // Nombre o null (si el miembro es null no hay más información de él) if (nr.Value != "null") { nr.Read(); // Nombre nr.Read(); // Nombre nr.Read(); // Tipo nr.Read(); // Tipo nr.Read(); // Tipo nr.Read(); // Valor nr.Read(); // Count nr.Read(); // Length int lengthobjpublicArrayInt = Int32.Parse(nr.Value); nr.Read(); // Count nr.Read(); // Tipo de elementos nr.Read(); tipo = Type.GetType(nr.Value); nr.Read(); // Tipo de elementos nr.Read(); // Rank nr.Read(); rango = Int32.Parse(nr.Value); nr.Read(); // Rank nr.Read(); // Datos de los rangos nr.Read(); // Datos de rango nr.Read(); // Longitud nr.Read(); int auxobjpublicArrayIntLength0 = Int32.Parse(nr.Value); nr.Read(); // Longitud nr.Read(); // Valor menor nr.Read(); int auxobjpublicArrayIntGetLowerBound0 = Int32.Parse(nr.Value); nr.Read(); // Valor menor nr.Read(); // Valor mayor nr.Read(); int auxobjpublicArrayIntGetUpperBound0 = Int32.Parse(nr.Value); nr.Read(); // Valor mayor nr.Read(); // Datos de rango nr.Read(); // Datos de los rangos nr.Read(); // Valores for (int auxIndice0 = auxobjpublicArrayIntGetLowerBound0; auxIndice0 <= auxobjpublicArrayIntGetUpperBound0; auxIndice0++) { if (obj.publicArrayInt == null) { obj.publicArrayInt = new System.Int32[auxobjpublicArrayIntLength0]; } nr.Read(); // Valor nr.Read(); // Valor del campo o propiedad obj.publicArrayInt[auxIndice0] = Int32.Parse(nr.Value); nr.Read(); // Valor } nr.Read(); // Valores nr.Read(); // Valor } nr.Read(); // Elemento nr.Read(); // Elemento nr.Read(); // Nombre o null (si el miembro es null no hay más información de él) if (nr.Value != "null") { nr.Read(); // Nombre nr.Read(); // Nombre nr.Read(); // Tipo nr.Read(); // Tipo nr.Read(); // Tipo nr.Read(); // Valor nr.Read(); // Valor del campo o propiedad obj.publicStaticColores = (Fase02.Clase07ClaseConTodo.colores)Enum.Parse(typeof(Fase02.Clase07ClaseConTodo.colores), nr.Value); nr.Read(); // Valor } nr.Read(); // Elemento nr.Read(); // Elementos }
static void Main(string[] args) { /* Fase02.Clase03Array c3a = new Fase02.Clase03Array(); #region Datos Clase03Array c3a.var1 = new int[3]; for (int i = 0; i < 3; i++) { c3a.var1[i] = i; } c3a.var2 = new string[3]; for (int i = 0; i < 3; i++) { c3a.var2[i] = "Número " + Convert.ToString(i); } c3a.var3 = new int[1, 2]; int cont = 0; for (int i = 0; i < 1; i++) { for (int j = 0; j < 2; j++) { c3a.var3[i, j] = cont; cont++; } } c3a.var4 = new int[1, 2, 3]; cont = 0; for (int i = 0; i < 1; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { c3a.var4[i, j, k] = cont; cont++; } } } c3a.var5 = new int[3][]; cont = 0; for (int i = 0; i < 3; i++) { int[] aux = new int[4]; for (int j = 0; j < 4; j++) { aux[j] = cont; cont++; } c3a.var5[i] = aux; } c3a.var6 = new Dictionary<string, int>(); c3a.var6.Add("uno", 1); c3a.var6.Add("dos", 2); c3a.var6.Add("tres", 3); c3a.var7 = new Fase02.DentroDelArray[2]; Fase02.DentroDelArray aux1 = new Fase02.DentroDelArray(); aux1.uno = 1; aux1.dos = "dos"; c3a.var7[0] = aux1; Fase02.DentroDelArray aux2 = new Fase02.DentroDelArray(); aux2.uno = 3; aux2.dos = "cuatro"; c3a.var7[1] = aux2; Clase03ArrayCodec serializador1 = new Clase03ArrayCodec(); if (serializador1 != null) { Type tipo1 = serializador1.GetType(); Console.WriteLine(tipo1.FullName); string codigo = serializador1.codificar(c3a); Console.WriteLine(codigo); Fase02.Clase03Array c3b = new Fase02.Clase03Array(); serializador1.decodificar(codigo, ref c3b); } else { Console.WriteLine("No se ha podido generar el serializador"); } #endregion Clase04Struct c = new Clase04Struct(); Clase04Struct cdecoded; c.valor3.valor1 = 1; c.valor3.valor2 = "2"; Clase04StructCodec serializador1 = new Clase04StructCodec(); if (serializador1 != null) { Type tipo1 = serializador1.GetType(); Console.WriteLine(tipo1.FullName); string codigo = serializador1.codificar(c); Console.WriteLine(codigo); cdecoded = new Fase02.Clase04Struct(); serializador1.decodificar(codigo, ref cdecoded); } else { Console.WriteLine("No se ha podido generar el serializador"); } */ Clase07ClaseConTodo c = new Clase07ClaseConTodo(); Clase07ClaseConTodo cdecoded; Clase07ClaseConTodoCodec serializador1 = new Clase07ClaseConTodoCodec(); if (serializador1 != null) { Type tipo1 = serializador1.GetType(); Console.WriteLine(tipo1.FullName); string codigo = serializador1.codificar(c); Console.WriteLine(codigo); cdecoded = new Fase02.Clase07ClaseConTodo(); serializador1.decodificar(codigo, ref cdecoded); } else { Console.WriteLine("No se ha podido generar el serializador"); } Console.ReadLine(); }
public static string encode(Fase02.Clase07ClaseConTodo obj) { StringBuilder texto = new StringBuilder("<elementos>"); { texto.Append("<elemento>"); texto.Append("<nombre>"); texto.Append("publicInt"); texto.Append("</nombre>"); texto.Append("<tipo>"); texto.Append("System.Int32"); texto.Append("</tipo>"); texto.Append("<valor>"); texto.Append(obj.publicInt.ToString()); texto.Append("</valor>"); texto.Append("</elemento>"); } if (obj.publicArrayInt == null) { texto.Append("<elemento>"); texto.Append("null"); texto.Append("</elemento>"); } else { texto.Append("<elemento>"); texto.Append("<nombre>"); texto.Append("publicArrayInt"); texto.Append("</nombre>"); texto.Append("<tipo>"); texto.Append("System.Int32[]"); texto.Append("</tipo>"); texto.Append("<valor>"); texto.Append("<count>"); texto.Append(obj.publicArrayInt.Length); texto.Append("</count>"); texto.Append("<tipoDeElementos>"); texto.Append("System.Int32"); texto.Append("</tipoDeElementos>"); texto.Append("<rank>"); texto.Append("1"); texto.Append("</rank>"); texto.Append("<datosDeLosRangos>"); texto.Append("<datosDeRango>"); texto.Append("<longitud>"); texto.Append(obj.publicArrayInt.GetLength(0)); texto.Append("</longitud>"); texto.Append("<valorMenor>"); texto.Append(obj.publicArrayInt.GetLowerBound(0)); texto.Append("</valorMenor>"); texto.Append("<valorMayor>"); texto.Append(obj.publicArrayInt.GetUpperBound(0)); texto.Append("</valorMayor>"); texto.Append("</datosDeRango>"); texto.Append("</datosDeLosRangos>"); texto.Append("<valores>"); foreach (System.Int32 elementoAuxobjpublicArrayInt in obj.publicArrayInt) { texto.Append("<valor>"); texto.Append(elementoAuxobjpublicArrayInt.ToString()); texto.Append("</valor>");; } texto.Append("</valores>"); texto.Append("</valor>"); texto.Append("</elemento>"); } { texto.Append("<elemento>"); texto.Append("<nombre>"); texto.Append("publicStaticColores"); texto.Append("</nombre>"); texto.Append("<tipo>"); texto.Append("Fase02.Clase07ClaseConTodo+colores"); texto.Append("</tipo>"); texto.Append("<valor>"); texto.Append(obj.publicStaticColores.ToString()); texto.Append("</valor>"); texto.Append("</elemento>"); } texto.Append("</elementos>"); //str = texto; return(texto.ToString()); }
static void Main(string[] args) { Program p = new Program(); p.watch = new System.Diagnostics.Stopwatch(); /* * 01. Clase básica */ Clase01Basica c1 = new Clase01Basica(); Clase01Basica c1decoded; /* c1.var1 = 1; c1.var2 = "2"; */ Console.WriteLine("Clase con dos atributos"); s = p.codificarClase01(c1); c1decoded = p.decodificarClase01(s); Console.WriteLine("=================="); /* * 02. Clase con arrays */ Clase02ArrayNormal c2 = new Clase02ArrayNormal(); Clase02ArrayNormal c2decoded; Console.WriteLine("Clase con arrays"); s = p.codificarClase02(c2); c2decoded = p.decodificarClase02(s); Console.WriteLine("=================="); /* * 03. Clase con arrays */ Clase03Array c3 = new Clase03Array(); Clase03Array c3decoded; c3.var1 = new int[1]; for (int i = 0; i < 1; i++) { c3.var1[i] = i; } c3.var2 = new string[2]; for (int i = 0; i < 2; i++) { c3.var2[i] = Convert.ToString(i); } /* c3.var3 = new int[3, 4]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { c3.var3[i,j] = i+j; } } c3.var4 = new int[4, 5, 6]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { for (int k = 0; k < 6; k++) { c3.var4[i, j, k] = i + j + k; } } } c3.var5 = new int[4][]; for (int i = 0; i < 4; i++) { int[] aux = new int[5]; for (int j = 0; j < 5; j++) { aux[j] = j; } c3.var5[i] = aux; } */ Console.WriteLine("Clase con cinco arrays"); s = p.codificarClase03(c3); c3decoded = (Clase03Array)p.decodificarClase03(s); Console.WriteLine("=================="); /* * 04. Clase con una estructura */ Clase04Struct c4 = new Clase04Struct(); c4.valor3 = new Clase04Struct.estructura(1, "2"); Clase04Struct c4decoded; Console.WriteLine("Clase con un atributo Struct"); s = p.codificarClase04(c4); c4decoded = p.decodificarClase04(s); Console.WriteLine("=================="); /* * 05. Clase con una clase */ Clase05Clase c5 = new Clase05Clase(); Clase05Clase.ClaseInterna c5int = new Clase05Clase.ClaseInterna(); c5int.var1 = 1; c5int.var2 = "2"; c5.var3 = c5int; Clase05Clase c5decoded; s = p.codificarClase05(c5); c5decoded = p.decodificarClase05(s); Console.WriteLine("=================="); /* * 06. Clase con una clase derivada */ Clase06ClaseDerivada c6 = new Clase06ClaseDerivada(); c6.var1 = 1; c6.var2 = "2"; c6.var3 = 3; Clase06ClaseDerivada c6decoded; s = p.codificarClase06(c6); c6decoded = p.decodificarClase06(s); Console.WriteLine("=================="); /* * 07. Clase con todo */ Clase07ClaseConTodo c7 = new Clase07ClaseConTodo(); c7.basePublicInt = 1; c7.lista = new List<int>(); c7.lista.Add(1); c7.lista.Add(2); c7.publicArray2DInt = new int[1,2]; c7.publicArray2DInt[0,0] = 1; c7.publicArray2DInt[0,1] = 1; c7.publicArrayInt = new int[3]; c7.publicArrayInt[0] = 1; c7.publicArrayInt[1] = 2; c7.publicArrayInt[2] = 3; c7.publicArrayMatrizEscalonadaInt = new int[2][]; int[] arrayAaux = new int[3]; arrayAaux[0] = 1; arrayAaux[1] = 2; arrayAaux[2] = 3; c7.publicArrayMatrizEscalonadaInt[0] = arrayAaux; c7.publicArrayMatrizEscalonadaInt[1] = arrayAaux; c7.publicInt = 30; Clase07ClaseConTodo c7decoded; Console.WriteLine("Clase con todo"); s = p.codificarClase07(c7); c7decoded = p.decodificarClase07(s); Console.WriteLine("=================="); /* * 01. Struct básica Struct01Basica s1 = new Struct01Basica(); s1.var1 = 1; s1.var2 = "2"; p.codificarStruct01(s1); Object c1decodedAux_ = p.decodificarStruct01(1, "2"); p.watch.Restart(); Struct01Basica c1decoded_ = (Struct01Basica)c1decodedAux_; p.watch.Stop(); Console.WriteLine("Tiempo de conversión de objeto: " + p.watch.ElapsedMilliseconds + " milisegundos"); */ Console.ReadLine(); }
static void Main(string[] args) { /* * Fase02.Clase03Array c3a = new Fase02.Clase03Array(); #region Datos Clase03Array * * c3a.var1 = new int[3]; * for (int i = 0; i < 3; i++) * { * c3a.var1[i] = i; * } * * c3a.var2 = new string[3]; * for (int i = 0; i < 3; i++) * { * c3a.var2[i] = "Número " + Convert.ToString(i); * } * * c3a.var3 = new int[1, 2]; * int cont = 0; * for (int i = 0; i < 1; i++) * { * for (int j = 0; j < 2; j++) * { * c3a.var3[i, j] = cont; * cont++; * } * } * * c3a.var4 = new int[1, 2, 3]; * cont = 0; * for (int i = 0; i < 1; i++) * { * for (int j = 0; j < 2; j++) * { * for (int k = 0; k < 3; k++) * { * c3a.var4[i, j, k] = cont; * cont++; * } * } * } * * c3a.var5 = new int[3][]; * cont = 0; * for (int i = 0; i < 3; i++) * { * int[] aux = new int[4]; * for (int j = 0; j < 4; j++) * { * aux[j] = cont; * cont++; * } * c3a.var5[i] = aux; * } * * c3a.var6 = new Dictionary<string, int>(); * c3a.var6.Add("uno", 1); * c3a.var6.Add("dos", 2); * c3a.var6.Add("tres", 3); * * c3a.var7 = new Fase02.DentroDelArray[2]; * Fase02.DentroDelArray aux1 = new Fase02.DentroDelArray(); * aux1.uno = 1; * aux1.dos = "dos"; * c3a.var7[0] = aux1; * Fase02.DentroDelArray aux2 = new Fase02.DentroDelArray(); * aux2.uno = 3; * aux2.dos = "cuatro"; * c3a.var7[1] = aux2; * * Clase03ArrayCodec serializador1 = new Clase03ArrayCodec(); * if (serializador1 != null) * { * Type tipo1 = serializador1.GetType(); * Console.WriteLine(tipo1.FullName); * string codigo = serializador1.codificar(c3a); * Console.WriteLine(codigo); * * Fase02.Clase03Array c3b = new Fase02.Clase03Array(); * serializador1.decodificar(codigo, ref c3b); * } * else * { * Console.WriteLine("No se ha podido generar el serializador"); * } * #endregion * * * Clase04Struct c = new Clase04Struct(); * Clase04Struct cdecoded; * c.valor3.valor1 = 1; * c.valor3.valor2 = "2"; * * Clase04StructCodec serializador1 = new Clase04StructCodec(); * if (serializador1 != null) * { * Type tipo1 = serializador1.GetType(); * Console.WriteLine(tipo1.FullName); * string codigo = serializador1.codificar(c); * Console.WriteLine(codigo); * * cdecoded = new Fase02.Clase04Struct(); * serializador1.decodificar(codigo, ref cdecoded); * } * else * { * Console.WriteLine("No se ha podido generar el serializador"); * } */ Clase07ClaseConTodo c = new Clase07ClaseConTodo(); Clase07ClaseConTodo cdecoded; Clase07ClaseConTodoCodec serializador1 = new Clase07ClaseConTodoCodec(); if (serializador1 != null) { Type tipo1 = serializador1.GetType(); Console.WriteLine(tipo1.FullName); string codigo = serializador1.codificar(c); Console.WriteLine(codigo); cdecoded = new Fase02.Clase07ClaseConTodo(); serializador1.decodificar(codigo, ref cdecoded); } else { Console.WriteLine("No se ha podido generar el serializador"); } Console.ReadLine(); }
public string codificar(Fase02.Clase07ClaseConTodo obj) { return(encode(obj)); }