BindingFlags
Флаги комбинируют через |.
Public | Instance не
видит закрытое и не видит
статическое. Закрытое статическое
ищут как
NonPublic | Static.
Синтаксис
BindingFlags flags = BindingFlags.Public | BindingFlags.Instance;
Пример
Давайте не найти закрытое поле
с Public | Instance:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
private int Secret = 12345;
}
class Program
{
static void Main()
{
bool res = typeof(Gate).GetFields(
BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
.Any(item => item.Name == "Secret");
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте найти закрытое поле с
NonPublic | Instance:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
private int Secret = 12345;
}
class Program
{
static void Main()
{
bool res = typeof(Gate).GetFields(
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly)
.Any(item => item.Name == "Secret");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте найти закрытое статическое поле:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
private static int Hidden = 12345;
}
class Program
{
static void Main()
{
bool res = typeof(Gate).GetFields(
BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.DeclaredOnly)
.Any(item => item.Name == "Hidden");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
GetFields,
поля типа -
GetMethods,
методы типа -
GetProperties,
свойства типа -
GetConstructors,
конструкторы