Я пытаюсь использовать отражение, чтобы получить свойство из класса. Вот пример кода, который я вижу:
using System.Reflection;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
PropertyInfo[] tmp2 = typeof(TestClass).GetProperties();
PropertyInfo test = typeof(TestClass).GetProperty(
"TestProp", BindingFlags.Public | BindingFlags.NonPublic);
}
}
public class TestClass
{
public Int32 TestProp
{
get;
set;
}
}
}
Когда я прослеживаю это, это то, что я вижу:
- Когда я извлекаю все свойства с помощью
GetProperties()
, результирующий массив имеет одну запись, для свойстваTestProp
. - Когда я пытаюсь извлечь
TestProp
с помощьюGetProperty()
, я вернусь обратно.
Я немного в тупике; Я не смог найти что-либо в MSDN в отношении GetProperty()
, чтобы объяснить этот результат мне. Любая помощь?
EDIT:
Если я добавлю BindingFlags.Instance
в вызов GetProperties()
, свойства не будут найдены, период. Это более последовательное и заставляет меня полагать, что TestProp
по какой-то причине не считается свойством экземпляра.
Зачем это было? Что мне нужно сделать для класса, чтобы это свойство считалось свойством экземпляра?