using System;
using System.Reflection;
namespace Reflection
{
class Test
{
protected void methodname()
{
Console.WriteLine(("in the world of the reflection"));
Console.Read();
}
}
class Program
{
static void Main(string[] args)
{
// BindingFlags eFlags = BindingFlags.Default | BindingFlags.Instance | BindingFlags.Public|BindingFlags.NonPublic;
BindingFlags eFlags = BindingFlags.Instance|BindingFlags.NonPublic;
Test aTest = new Test();
MethodInfo mInfoMethod = typeof(Reflection.Test).GetMethod("methodname", eFlags);
mInfoMethod.Invoke(aTest, null);
}
}
}
根据 MSDN,BindingFlags.Nonpublic 用于访问非私有成员。如果我只使用此枚举,则 Getmethod 返回 null 值。但是,如果使用 Instance 和 Nonpublic 枚举,则调用所需的方法。这两者之间有什么区别?何时需要使用实例和公共/非公共组合。