【发布时间】:2017-11-07 14:36:09
【问题描述】:
我正在学习 C#,并且正在尝试一个简单的反射示例。我正在尝试从类中获取方法的名称。代码如下:
using System;
using System.Reflection;
namespace Practice
{
class ReflectionExamples
{
private int Sum(int a, int b)
{
return a + b;
}
public int GetSum(int a, int b)
{
int c = Sum(a, b);
return c;
}
}
class ReflectionDemo
{
public static void Execute() // Main calls this
{
var a = typeof(ReflectionExamples);
MethodInfo[] mi = a.GetMethods(); //Using BindingFlags.NonPublic does not show any results
foreach (MethodInfo m in mi)
{
Console.WriteLine(m.Name);
}
}
}
}
这个输出是(缺少总和):
GetNum
ToString
Equals
GetHashCode
GetType
【问题讨论】:
-
试试
BindingFlags.NonPublic | BindingFlags.InstanceDemo -
GetMethods不带参数默认为BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public。
标签: c# reflection