public static void TypeInfo() { EXforRef obj = new EXforRef(); Type t = obj.GetType(); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("\nКонструкторы:"); Console.ResetColor(); foreach (var x in t.GetConstructors()) { Console.WriteLine(x); } Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("\nМетоды:"); Console.ResetColor(); foreach (var x in t.GetMethods()) { Console.WriteLine(x); } Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("\nСвойства:"); Console.ResetColor(); foreach (var x in t.GetProperties()) { Console.WriteLine(x); } }
/// <summary> /// Пример использования метода InvokeMember /// </summary> static void InvokeMemberInfo() { Type t = typeof(EXforRef); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("\nВызов метода:"); Console.ResetColor(); //Создание объект через рефлексию EXforRef fi = (EXforRef)t.InvokeMember(null, BindingFlags.CreateInstance, null, null, new object[] { }); //Параметры вызова метода object[] parameters = new object[] { 3, 2 }; //Вызов метода object Result = t.InvokeMember("Plus", BindingFlags.InvokeMethod, null, fi, parameters); Console.WriteLine("Plus(3,2)={0}", Result); }