C # Reflection Помощь? (GetProperties) - PullRequest
2 голосов
/ 16 марта 2012

Мой код возвращает пустой массив PropertyInfo

PropertyInfo[] classProperties = typeof(Processor).GetProperties();

Все объекты этого класса являются общедоступными. Использование .NET 2.0 Framework.

Я также пытался использовать экземпляр, объявленный ранее в моем коде:

PropertyInfo[] classProperties = Computer.Processor[0].GetType().GetProperties();

И я попытался использовать такие привязки, как Default, Instance и Public.

Есть идеи?

1 Ответ

5 голосов
/ 16 марта 2012

Форма без параметров вернет открытые свойства. Таким образом, есть 2 вероятных варианта:

  • это не свойства (а поля)
  • они не являются публичными

Открытое свойство - это что-то a: с модификатором public и b: с аксессором get или set, например: 1011 *

public int Foo {get;set;} // automatically implemented property
public string bar;
public string Bar { // manually implemented property
    get { return bar; }
    set { bar = value; }
}

Обратите внимание, что связанные с интерфейсом свойства, которые реализованы как явная реализация интерфейса, будут отражены только в том случае, если вы выполняете запрос к интерфейсу, а не к классу; поэтому следующее не будет отображаться, если вы не начнете с typeof(ISomeInterface):

string ISomeInterface.Bar { get { return someValue; } } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...