生成与方法类型类的方法列表(Generate List of methods of a class

2019-06-27 02:10发布

我要生成的一类或类目录中的所有方法的列表。 我也需要他们的返回类型。 其输出到一个文本会做...有谁知道一个工具,凸耳在VS或东西,将执行任务吗? 使用C#代码的方式和Visual Studio 2008 IDE如林

Answer 1:

当然 - 使用Type.GetMethods()。 你要指定不同的绑定标志以获得非公共方法等等,这是一个相当粗糙,但可行的出发点:

using System;
using System.Linq;

class Test
{
    static void Main()
    {
        ShowMethods(typeof(DateTime));
    }

    static void ShowMethods(Type type)
    {
        foreach (var method in type.GetMethods())
        {
            var parameters = method.GetParameters();
            var parameterDescriptions = string.Join
                (", ", method.GetParameters()
                             .Select(x => x.ParameterType + " " + x.Name)
                             .ToArray());

            Console.WriteLine("{0} {1} ({2})",
                              method.ReturnType,
                              method.Name,
                              parameterDescriptions);
        }
    }
}

输出:

System.DateTime Add (System.TimeSpan value)
System.DateTime AddDays (System.Double value)
System.DateTime AddHours (System.Double value)
System.DateTime AddMilliseconds (System.Double value)
System.DateTime AddMinutes (System.Double value)
System.DateTime AddMonths (System.Int32 months)
System.DateTime AddSeconds (System.Double value)
System.DateTime AddTicks (System.Int64 value)
System.DateTime AddYears (System.Int32 value)
System.Int32 Compare (System.DateTime t1, System.DateTime t2)
System.Int32 CompareTo (System.Object value)
System.Int32 CompareTo (System.DateTime value)
System.Int32 DaysInMonth (System.Int32 year, System.Int32 month)

(等等)



Answer 2:

您可以在这些列表与反射变得非常容易。 例如用Type.GetMethods()



Answer 3:

using (StreamWriter sw = new StreamWriter("C:/methods.txt"))
{
      foreach (MethodInfo item in typeof(MyType).GetMethods())
      {
            sw.WriteLine(item.Name);
      } 
}


文章来源: Generate List of methods of a class with method types
标签: c# class methods