Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            ///Fields
            type = typeof(BlackBoxInteger);
            //FieldInfo[] info = type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic);

            instance = (BlackBoxInteger)Activator.CreateInstance(type, true);

            ///Constructor
            //ConstructorInfo ctor = type.GetConstructor(new[] { typeof(int) });
            //object inst = ctor.Invoke(new object[] { 10 });

            ///Methods
            MethodInfo[] methods = type.GetMethods(BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic);

            while (true)
            {
                string input = Console.ReadLine();
                if (input == "END")
                {
                    return;
                }
                string cmd      = input.Substring(0, input.IndexOf("_"));
                string argument = input.Substring(input.IndexOf("_") + 1);
                Console.WriteLine(MethodInvoker(cmd, argument));
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            Type blackBox = typeof(BlackBoxInteger);

            ConstructorInfo[] constructorInfo = blackBox.GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance);
            BlackBoxInteger   instance        = (BlackBoxInteger)constructorInfo[1].Invoke(new object[0]);

            string[] command = Console.ReadLine().Split('_').ToArray();
            while (command[0] != "END")
            {
                int        number = int.Parse(command[1]);
                MethodInfo method = blackBox.GetMethod(command[0], BindingFlags.NonPublic | BindingFlags.Instance);

                method.Invoke(instance, new object[1] {
                    number
                });
                FieldInfo field = blackBox.GetField("innerValue", BindingFlags.NonPublic | BindingFlags.Instance);
                Console.WriteLine(field.GetValue(instance));

                command = Console.ReadLine().Split('_').ToArray();
            }
        }