如果我有一个MyClass
如下的 C# 类:
using System.Diagnostics;
namespace ConsoleApplication1
{
class MyClass
{
public int pPublic {get;set;}
private int pPrivate {get;set;}
internal int pInternal {get;set;}
}
class Program
{
static void Main(string[] args)
{
Debug.Assert(typeof(MyClass).GetProperties(
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance).Length == 1);
Debug.Assert(typeof(MyClass).GetProperties(
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance).Length == 2);
// internal?
// protected?
// protected internal?
}
}
}
上面编译的代码在没有任何断言失败的情况下运行。NonPublic 返回 Internal 和 Private 属性。BindingFlags上似乎没有其他可访问性类型的标志。
如何获取仅包含内部属性的列表/数组?在相关说明中,但对于我的应用程序来说不是必需的,受保护或受保护的内部呢?