Отражение определенных типов свойств из подклассов - PullRequest
0 голосов
/ 08 июля 2010

У меня есть большой класс со многими вложенными подклассами разных типов следующим образом:

class BigFooClass
{
    // Classes
    Foo InnerFoo {get; set;}
    Bar InnerBar {get; set;}
    Oof InnerOof {get; set;}
    Rab InnerRab {get; set;}

    // Simple Properties
    Decimal OuterDecimal {get; set;}
    Long OuterLong {get; set;}
{

Каждый из этих внутренних классов определяется следующим образом:

class Foo
{
   Decimal DecimalProp {get; set;}
   Long    LongProp {get; set;}
}
class Bar
{
   Decimal Decimal Prop {get; set;}
   Long    LongProp {get; set;}

} etc...

Я хочу получитьсписок ВСЕХ свойств Decimal или Long вместе с их типами контейнеров выглядит следующим образом:

BigFooClass.OuterDecimal - это тип Decimal

BigFooClass.OuterLong - тип Long

Foo.OuterDecimal - это тип Decimal

Foo.OuterLong - это тип Long

Bar.OuterDecimal - тип десятичного числа

Bar.OuterLong - это тип Long

Я могу добраться до первого уровня, но не могу найти, как отразить тип из PropertyInfo, что может быть неправильным способом сделать это.

Может кто-нибудь показать мне, как это сделать, пожалуйста?

Brian

Ответы [ 2 ]

1 голос
/ 08 июля 2010

Simple:

PropertyInfo pi = // get your property info here

pi.PropertyType;  // This is what you're looking for. (Type)
0 голосов
/ 08 июля 2010

Получив первый уровень как PropertyInfo, вам нужно вернуться на другой уровень и проверить свойства в этом типе.Вы можете сделать это, посмотрев элемент PropertyInfo.PropertyType , а затем используя этот тип для вызова GetProperty / GetProperties и получения свойств «второго уровня».

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