以下のような C# クラスがあるMyClass
とします。
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には、他のアクセシビリティ タイプのフラグはないようです。
内部のプロパティのみのリスト/配列を取得するにはどうすればよいですか? 関連するメモですが、私のアプリケーションには必要ありませんが、保護された、または保護された内部はどうですか?