Ejemplo n.º 1
0
        private bool IsDynamicMember(Symbol sym)
        {
            System.Runtime.CompilerServices.DynamicAttribute da = null;
            if (sym.IsFieldSymbol())
            {
                if (!sym.AsFieldSymbol().getType().isPredefType(PredefinedType.PT_OBJECT))
                {
                    return(false);
                }
                var o = sym.AsFieldSymbol().AssociatedFieldInfo.GetCustomAttributes(typeof(System.Runtime.CompilerServices.DynamicAttribute), false).ToArray();
                if (o.Length == 1)
                {
                    da = o[0] as System.Runtime.CompilerServices.DynamicAttribute;
                }
            }
            else
            {
                Debug.Assert(sym.IsPropertySymbol());
                if (!sym.AsPropertySymbol().getType().isPredefType(PredefinedType.PT_OBJECT))
                {
                    return(false);
                }
                var o = sym.AsPropertySymbol().AssociatedPropertyInfo.GetCustomAttributes(typeof(System.Runtime.CompilerServices.DynamicAttribute), false).ToArray();
                if (o.Length == 1)
                {
                    da = o[0] as System.Runtime.CompilerServices.DynamicAttribute;
                }
            }

            if (da == null)
            {
                return(false);
            }
            return(da.TransformFlags.Count == 0 || (da.TransformFlags.Count == 1 && da.TransformFlags[0]));
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            System.Runtime.CompilerServices.DynamicAttribute a = new System.Runtime.CompilerServices.DynamicAttribute();

/*
 #region Clase01Basica
 *          Fase02.Clase01Basica c = new Clase01Basica();
 *          c.var1 = 1;
 *          c.var2 = "hola";
 *          string texto = Codificador.encode(c);
 *          Console.WriteLine(texto);
 #endregion
 *
 */

            #region Clase03Array

/*
 *          Fase02.Clase03Array c3 = new Clase03Array();
 *          c3.var1 = new int[1];
 *          for (int i = 0; i < 1; i++)
 *          {
 *              c3.var1[i] = i;
 *          }
 *          c3.var2 = new string[3];
 *          for (int i = 0; i < 3; i++)
 *          {
 *              c3.var2[i] = "Número " + Convert.ToString(i);
 *          }
 *          c3.var3 = new int[1, 2];
 *          int cont = 0;
 *          for (int i = 0; i < 1; i++)
 *          {
 *              for (int j = 0; j < 2; j++)
 *              {
 *                  c3.var3[i, j] = cont;
 *                  cont++;
 *              }
 *          }
 *          c3.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++)
 *                  {
 *                      c3.var4[i, j, k] = cont;
 *                      cont++;
 *                  }
 *              }
 *          }
 *          c3.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++;
 *              }
 *              c3.var5[i] = aux;
 *          }
 *          string texto3 = Codificador.encode(c3);
 *          Console.WriteLine(texto3);
 *
 *          /*
 *              c3 = new Clase03Array();
 *              c3 = serializador3.decode(str, c3);
 *              Console.WriteLine("Array var1:");
 *              for (int i = 0; i < c3.var1.Length; i++)
 *              {
 *                  Console.WriteLine(c3.var1[i]);
 *              }
 *              Console.WriteLine("Array var2:");
 *              for (int i = 0; i < c3.var2.Length; i++)
 *              {
 *                  Console.WriteLine(c3.var2[i]);
 *              }
 *              Console.WriteLine("Array var3:");
 *              for (int i = 0; i < 1; i++)
 *              {
 *                  for (int j = 0; j < 2; j++)
 *                  {
 *                      Console.Write(c3.var3[i, j]);
 *                  }
 *                  Console.WriteLine();
 *              }
 *              Console.WriteLine("Array var4:");
 *              for (int i = 0; i < 1; i++)
 *              {
 *                  for (int j = 0; j < 2; j++)
 *                  {
 *                      for (int k = 0; k < 3; k++)
 *                      {
 *                          Console.WriteLine(c3.var4[i, j, k]);
 *                      }
 *                      Console.WriteLine();
 *                  }
 *                  Console.WriteLine();
 *              }
 *              Console.WriteLine("Array var5:");
 *              for (int i = 0; i < 3; i++)
 *              {
 *                  Console.WriteLine("Array del elemento " + i);
 *                  for (int j = 0; j < 4; j++)
 *                  {
 *                      Console.WriteLine(c3.var5[i][j]);
 *                  }
 *                  Console.WriteLine();
 *              }
 */
            #endregion

/*
 *          Fase02.Clase07ClaseConTodo c7 = new Clase07ClaseConTodo();
 *          string texto = Codificador.encode(c7);
 *          Console.WriteLine(texto);
 *
 *          Fase02.Clase08List c8 = new Clase08List();
 *          string texto = Codificador.encode(c8);
 *          Console.WriteLine(texto);
 *
 *          Fase02.Clase09MiembroClase c9 = new Clase09MiembroClase();
 *          string texto = Codificador.encode(c9);
 *          Console.WriteLine(texto);
 */

            ClaseASerializar s = new ClaseASerializar();
            s.var1 = 3;
            ClaseB b = new ClaseB();
            b.varB1 = 54;
            s.var2  = b;

            string codigo = Codificador.encode(s);
            Console.WriteLine(codigo);
            Console.ReadLine();
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            System.Runtime.CompilerServices.DynamicAttribute a = new System.Runtime.CompilerServices.DynamicAttribute();
/*
            #region Clase01Basica
            Fase02.Clase01Basica c = new Clase01Basica();
            c.var1 = 1;
            c.var2 = "hola";
            string texto = Codificador.encode(c);
            Console.WriteLine(texto);
            #endregion

*/

            #region Clase03Array
/*
            Fase02.Clase03Array c3 = new Clase03Array();
            c3.var1 = new int[1];
            for (int i = 0; i < 1; i++)
            {
                c3.var1[i] = i;
            }
            c3.var2 = new string[3];
            for (int i = 0; i < 3; i++)
            {
                c3.var2[i] = "Número " + Convert.ToString(i);
            }
            c3.var3 = new int[1, 2];
            int cont = 0;
            for (int i = 0; i < 1; i++)
            {
                for (int j = 0; j < 2; j++)
                {
                    c3.var3[i, j] = cont;
                    cont++;
                }
            }
            c3.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++)
                    {
                        c3.var4[i, j, k] = cont;
                        cont++;
                    }
                }
            }
            c3.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++;
                }
                c3.var5[i] = aux;
            }
            string texto3 = Codificador.encode(c3);
            Console.WriteLine(texto3);
           
            /*
                c3 = new Clase03Array();
                c3 = serializador3.decode(str, c3);
                Console.WriteLine("Array var1:");
                for (int i = 0; i < c3.var1.Length; i++)
                {
                    Console.WriteLine(c3.var1[i]);
                }
                Console.WriteLine("Array var2:");
                for (int i = 0; i < c3.var2.Length; i++)
                {
                    Console.WriteLine(c3.var2[i]);
                }
                Console.WriteLine("Array var3:");
                for (int i = 0; i < 1; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        Console.Write(c3.var3[i, j]);
                    }
                    Console.WriteLine();
                }
                Console.WriteLine("Array var4:");
                for (int i = 0; i < 1; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        for (int k = 0; k < 3; k++)
                        {
                            Console.WriteLine(c3.var4[i, j, k]);
                        }
                        Console.WriteLine();
                    }
                    Console.WriteLine();
                }
                Console.WriteLine("Array var5:");
                for (int i = 0; i < 3; i++)
                {
                    Console.WriteLine("Array del elemento " + i);
                    for (int j = 0; j < 4; j++)
                    {
                        Console.WriteLine(c3.var5[i][j]);
                    }
                    Console.WriteLine();
                }
             */ 
            #endregion
/*
            Fase02.Clase07ClaseConTodo c7 = new Clase07ClaseConTodo();
            string texto = Codificador.encode(c7);
            Console.WriteLine(texto);
 
            Fase02.Clase08List c8 = new Clase08List();
            string texto = Codificador.encode(c8);
            Console.WriteLine(texto);

            Fase02.Clase09MiembroClase c9 = new Clase09MiembroClase();
            string texto = Codificador.encode(c9);
            Console.WriteLine(texto);
*/

            ClaseASerializar s = new ClaseASerializar();
            s.var1 = 3;
            ClaseB b = new ClaseB();
            b.varB1 = 54;
            s.var2 = b;

            string codigo = Codificador.encode(s);
            Console.WriteLine(codigo);
            Console.ReadLine();
        }