public void decode(ref Clase07ClaseConTodo c, String aux)
        {
            int ele1 = 0;
            int numEle1 = 0;

            String ele2 = "";
            int numEle2 = 0;
        }
        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;
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #9
0
 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;
        }
Beispiel #13
0
        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();
        }
Beispiel #14
0
        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();
        }
Beispiel #16
0
        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();
        }
Beispiel #18
0
        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();
        }
Beispiel #19
0
 public string codificar(Fase02.Clase07ClaseConTodo obj)
 {
     return(encode(obj));
 }