Пример #1
0
        // This is the extension method.
        // The first parameter takes the "this" modifier
        // and specifies the type for which the method is defined.
        public static String codificar(this Object obj)
        {
            if (obj.GetType() == typeof(Fase02.Clase01Basica))
            {
                Fase02.Clase01Basica c = (Fase02.Clase01Basica)obj;
                return("");
//                return string.Format("{0},{1}", c.var1, c.var2);
            }
            else if (obj.GetType() == typeof(Fase02.Clase02ArrayNormal))
            {
                Fase02.Clase02ArrayNormal c = (Fase02.Clase02ArrayNormal)obj;
                return(string.Format("{0},{1}", c.var1.Length, c.var2.Length));
            }
            else if (obj.GetType() == typeof(Fase02.Clase03Array))
            {
                Fase02.Clase03Array c = (Fase02.Clase03Array)obj;

                int ele1    = 0;
                int numEle1 = 0;

                String ele2    = "";
                int    numEle2 = 0;

                foreach (int elemento in c.var1)
                {
                    ele1 = elemento;
                    numEle1++;
                }

                /*
                 * foreach (string elemento in c.var2)
                 * {
                 *  ele2 = elemento;
                 *  numEle2++;
                 * }
                 */
                return(string.Format("{0},{1},{2},{3}", ele1, c.var1.Length, ele2, c.var2.Length));
            }
            else if (obj.GetType() == typeof(Fase02.Clase04Struct))
            {
                Fase02.Clase04Struct c = (Fase02.Clase04Struct)obj;
                return(string.Format("{0},{1}", c.valor3.valor1, c.valor3.valor2));
            }
            else if (obj.GetType() == typeof(Fase02.Clase05Clase))
            {
                Fase02.Clase05Clase c = (Fase02.Clase05Clase)obj;
                return("var1=" + c.var3.var1 + "&var2=" + c.var3.var2);
            }
            else if (obj.GetType() == typeof(Fase02.Clase06ClaseDerivada))
            {
                Fase02.Clase06ClaseDerivada c = (Fase02.Clase06ClaseDerivada)obj;
                return("var1=" + c.var1 + "&var2=" + c.var2 + "&var3=" + c.var3);
            }
            else if (obj.GetType() == typeof(Fase02.Struct01Basica))
            {
                Fase02.Struct01Basica c = (Fase02.Struct01Basica)obj;
                return("var1=" + c.var1 + "&var2=" + c.var2);
            }
            else
            {
                return("");
            }
        }
Пример #2
0
//        public static Object decodificar(this System.IO.Stream str, Type tipo)
        public static Object decodificar(this String str, Type tipo)
        {
            Object obj = null;

            if (tipo == typeof(Fase02.Clase01Basica))
            {
                Fase02.Clase01Basica c = new Fase02.Clase01Basica();
                int    v1 = 0;
                string v2 = "";

                String   aux        = str.ToString();
                String[] parametros = aux.Split(',');

                // Se esperan dos parámetros: un int y un string
                if (parametros.Length == 2)
                {
                    v1 = Convert.ToInt16(parametros[0]);
                    v2 = parametros[1];
                }
                else
                {
                    v1 = 0;
                    v2 = "";
                }

                /*
                 * c.var1 = v1;
                 * c.var2 = v2;
                 */
                obj = c;
            }
            else if (tipo == typeof(Fase02.Clase02ArrayNormal))
            {
                Fase02.Clase02ArrayNormal c = new Fase02.Clase02ArrayNormal();
                int    v1 = 0;
                string v2 = "";

                String   aux        = str.ToString();
                String[] parametros = aux.Split('&');

                // Se esperan dos parámetros: un int y un string
                if (parametros.Length == 2)
                {
                    String   par;
                    String[] param;
                    par   = parametros[0];
                    param = par.Split('=');
                    if (param.Length == 2 && param[0] == "v1")
                    {
                        v1 = Convert.ToInt16(param[1]);

                        par   = parametros[1];
                        param = par.Split('=');
                        if (param.Length == 2 && param[0] == "v2")
                        {
                            v2 = param[1];
                        }
                    }
                }

                obj = c;
            }
            else if (tipo == typeof(Fase02.Clase03Array))
            {
                Fase02.Clase03Array c = new Fase02.Clase03Array();
                int    v1             = 0;
                int    numEle1        = 0;
                string v2             = "";
                int    numEle2        = 0;

                String   aux        = str.ToString();
                String[] parametros = aux.Split(',');

                // Se esperan cuatro parámetros: un int, un número de elementos int, un string y un número de elementos string
                if (parametros.Length == 4)
                {
                    v1      = Convert.ToInt16(parametros[0]);
                    numEle1 = Convert.ToInt16(parametros[1]);
                    v2      = parametros[2];
                    numEle2 = Convert.ToInt16(parametros[3]);

                    c.var1 = new int[numEle1];
                    for (int i = 0; i < numEle1; i++)
                    {
                        c.var1[i] = i;
                    }

                    c.var2 = new string[numEle2];
                    for (int i = 0; i < 2; i++)
                    {
                        c.var2[i] = Convert.ToString(i);
                    }
                }
                else
                {
                    c.var1 = new int[numEle1];
                    c.var2 = new string[numEle2];
                }

                obj = c;
            }
            else if (tipo == typeof(Fase02.Clase04Struct))
            {
                Fase02.Clase04Struct c = new Fase02.Clase04Struct();
                int    v1 = 0;
                string v2 = "";

                String   aux        = str.ToString();
                String[] parametros = aux.Split(',');

                // Se esperan dos parámetros: un int y un string
                if (parametros.Length == 2)
                {
                    v1 = Convert.ToInt16(parametros[0]);
                    v2 = parametros[1];
                }
                else
                {
                    v1 = 0;
                    v2 = "";
                }

                c.valor3.valor1 = v1;
                c.valor3.valor2 = v2;

                obj = c;
            }

/*
 *          else if (obj.GetType() == typeof(Fase02.Clase05Clase))
 *          {
 *              Fase02.Clase05Clase c = (Fase02.Clase05Clase)obj;
 *              return "var1=" + c.var3.var1 + "&var2=" + c.var3.var2;
 *          }
 *          else
 *          {
 *              return "";
 *          }
 */
            return(obj);
        }
//        public static Object decodificar(this System.IO.Stream str, Type tipo)
        public static Object decodificar(this String str, Type tipo)
        {
            Object obj = null;

            if (tipo == typeof(Fase02.Clase01Basica))
            {
                Fase02.Clase01Basica c = new Fase02.Clase01Basica();
                int v1 = 0;
                string v2 = "";

                String aux = str.ToString();
                String[] parametros = aux.Split(',');

                // Se esperan dos parámetros: un int y un string
                if (parametros.Length == 2)
                {
                    v1 = Convert.ToInt16(parametros[0]);
                    v2 = parametros[1];
                }
                else
                {
                    v1 = 0;
                    v2 = "";
                }
                /*
                c.var1 = v1;
                c.var2 = v2;
                */
                obj = c;
            }
            else if (tipo == typeof(Fase02.Clase02ArrayNormal))
            {
                Fase02.Clase02ArrayNormal c = new Fase02.Clase02ArrayNormal();
                int v1 = 0;
                string v2 = "";

                String aux = str.ToString();
                String[] parametros = aux.Split('&');

                // Se esperan dos parámetros: un int y un string
                if (parametros.Length == 2)
                {
                    String par;
                    String[] param;
                    par = parametros[0];
                    param = par.Split('=');
                    if (param.Length == 2 && param[0] == "v1")
                    {
                        v1 = Convert.ToInt16(param[1]);

                        par = parametros[1];
                        param = par.Split('=');
                        if (param.Length == 2 && param[0] == "v2")
                        {
                            v2 = param[1];
                        }
                    }
                }

                obj = c;
            }
            else if (tipo == typeof(Fase02.Clase03Array))
            {
                Fase02.Clase03Array c = new Fase02.Clase03Array();
                int v1 = 0;
                int numEle1 = 0;
                string v2 = "";
                int numEle2 = 0;

                String aux = str.ToString();
                String[] parametros = aux.Split(',');

                // Se esperan cuatro parámetros: un int, un número de elementos int, un string y un número de elementos string
                if (parametros.Length == 4)
                {
                    v1 = Convert.ToInt16(parametros[0]);
                    numEle1 = Convert.ToInt16(parametros[1]);
                    v2 = parametros[2];
                    numEle2 = Convert.ToInt16(parametros[3]);

                    c.var1 = new int[numEle1];
                    for (int i = 0; i < numEle1; i++)
                    {
                        c.var1[i] = i;
                    }

                    c.var2 = new string[numEle2];
                    for (int i = 0; i < 2; i++)
                    {
                        c.var2[i] = Convert.ToString(i);
                    }
                }
                else
                {
                    c.var1 = new int[numEle1];
                    c.var2 = new string[numEle2];
                }

                obj = c;

            }
            else if (tipo == typeof(Fase02.Clase04Struct))
            {
                Fase02.Clase04Struct c = new Fase02.Clase04Struct();
                int v1 = 0;
                string v2 = "";

                String aux = str.ToString();
                String[] parametros = aux.Split(',');

                // Se esperan dos parámetros: un int y un string
                if (parametros.Length == 2)
                {
                    v1 = Convert.ToInt16(parametros[0]);
                    v2 = parametros[1];
                }
                else
                {
                    v1 = 0;
                    v2 = "";
                }

                c.valor3.valor1 = v1;
                c.valor3.valor2 = v2;

                obj = c;
            }
/*
            else if (obj.GetType() == typeof(Fase02.Clase05Clase))
            {
                Fase02.Clase05Clase c = (Fase02.Clase05Clase)obj;
                return "var1=" + c.var3.var1 + "&var2=" + c.var3.var2;
            }
            else
            {
                return "";
            }
 */
            return obj;
        }