Каков наилучший способ получить только определенные свойства с помощью отражения? - PullRequest
0 голосов
/ 21 октября 2010

Я пытаюсь найти лучший способ получить только определенные свойства от типа, использующего отражение. Как я могу отличить свойства друг от друга?

Позвольте мне добавить это, чтобы прояснить мой вопрос.

Я понимаю, что могу использовать флаги привязки или имя. Но скажем, я хочу только определенные четыре свойства. Будет ли лучший способ создать пользовательский атрибут для тех, которые я хочу, затем перебрать все свойства, чтобы увидеть, есть ли у них этот атрибут?

Ответы [ 3 ]

4 голосов
/ 21 октября 2010

Ну, вполне очевидно, по имени, или по типу, или по объявлению типа (например, тип или его базовый класс).

По сути, если вы можете описать, что вы подразумеваете под "определенными свойствами", это просто вопрос превращения этого предиката в код. Например, предположим, что вам нужны только свойства, начинающиеся с A:

var properties = type.GetProperties().Where(p => p.Name.StartsWith("A"));
1 голос
/ 21 октября 2010

System.Reflection.BindingFlags предназначены для того, чтобы вы могли фильтровать такие вещи как public / private, member / static при отражении типов.

0 голосов
/ 21 октября 2010

Вы можете использовать Type.GetProperty(string) для получения определенного свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...