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])); }
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(); }
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(); }