Метод GetProperties
Без флагов попадают открытые
свойства экземпляра, в том
числе унаследованные. Чтобы
оставить только объявленные в
типе, добавьте
BindingFlags.DeclaredOnly.
Синтаксис
PropertyInfo[] props = type.GetProperties();
Пример
Давайте проверить, что список
не пуст и есть Count:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
public int Count { get; set; }
}
class Program
{
static void Main()
{
PropertyInfo[] props = typeof(Gate).GetProperties();
bool res = props.Length > 0
&& props.Any(item => item.Name == "Count");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте взять только объявленные свойства:
using System;
using System.Reflection;
class Gate
{
public int Count { get; set; }
}
class Program
{
static void Main()
{
PropertyInfo[] props = typeof(Gate).GetProperties(
BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
int res = props.Length;
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
Пример
Давайте прочитать имя первого свойства в списке без флагов:
using System;
using System.Linq;
using System.Reflection;
class Gate
{
public int Count { get; set; }
}
class Program
{
static void Main()
{
PropertyInfo item = typeof(Gate).GetProperties()
.First(prop => prop.Name == "Count");
string res = item.Name;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"Count"
Смотрите также
-
PropertyInfo,
описание свойства -
BindingFlags,
флаги поиска -
GetMethods,
методы типа -
GetFields,
поля типа