Beispiel #1
0
        public TypeTest2()
        {
            Myclass myclass = new Myclass();


            #region Вывод информиции о типе

            ListVariosStats(myclass); // Получаем разную информацию
            ListMethods(myclass);
            ListFilds(myclass);
            ListProps(myclass);
            ListInterfaces(myclass);
            ListConstructor(myclass);

            #endregion

            Console.WriteLine(new string('_', 20));

            Type t = myclass.GetType();

            // Вызов Private метода
            MethodInfo met = t.GetMethod("MethodC", BindingFlags.Instance | BindingFlags.NonPublic);
            met.Invoke(myclass, new object[] { "Hello", " world!" });

            // Запись значения в private поле
            FieldInfo mystr = t.GetField("mystring", BindingFlags.Instance | BindingFlags.NonPublic);
            mystr.SetValue(myclass, "Привет мир");

            Console.WriteLine($"{myclass.MyString}");

            Console.ReadLine();
        }
Beispiel #2
0
        private void ListVariosStats(Myclass myclass)
        {
            Console.WriteLine(new string('_', 20));

            Type t = myclass.GetType();

            Console.WriteLine($"Полное имя {t.FullName}");
            Console.WriteLine($"Базовый класс {t.BaseType}");
            Console.WriteLine($"Абстрактный {t.IsAbstract}");
            Console.WriteLine($"Это COM объект{t.IsCOMObject}");
            Console.WriteLine($"Запрещено наследование {t.IsSealed}");
            Console.WriteLine($"этот класс {t.IsClass}");
        }
Beispiel #3
0
        private void ListProps(Myclass myclass)
        {
            Console.WriteLine(new string('_', 20));

            Type t = myclass.GetType();

            PropertyInfo[] prop = t.GetProperties();

            foreach (var item in prop)
            {
                Console.WriteLine($"Prop : {item.Name} {item.PropertyType}");
            }
        }
Beispiel #4
0
        private void ListInterfaces(Myclass myclass)
        {
            Console.WriteLine(new string('_', 20));

            Type t = myclass.GetType();

            Type[] it = t.GetInterfaces();

            foreach (Type item in it)
            {
                Console.WriteLine($"Interface {item.Name}");
            }
        }
Beispiel #5
0
        private void ListConstructor(Myclass myclass)
        {
            Console.WriteLine(new string('_', 20));

            Type t = myclass.GetType();

            ConstructorInfo[] con = t.GetConstructors();

            foreach (var item in con)
            {
                Console.WriteLine(item.Name);
            }
        }
Beispiel #6
0
        private void ListFilds(Myclass myclass)
        {
            Console.WriteLine(new string('_', 20));

            Type t = myclass.GetType();

            FieldInfo[] filds = t.GetFields(
                BindingFlags.Instance |
                BindingFlags.Static |
                BindingFlags.Public |
                BindingFlags.NonPublic);

            foreach (var item in filds)
            {
                Console.WriteLine($" Fild: {item.Name}");
            }
        }
Beispiel #7
0
        private void ListMethods(Myclass myclass)
        {
            Console.WriteLine(new string('_', 20));

            Type t = myclass.GetType();

            MethodInfo[] mi = t.GetMethods(
                BindingFlags.Instance |
                BindingFlags.Static |
                BindingFlags.Public |
                BindingFlags.NonPublic |
                BindingFlags.DeclaredOnly);

            foreach (var item in mi)
            {
                Console.WriteLine($"Method: {item.Name}");
            }
        }