我有一个很大的类,有许多不同类型的嵌套子类,如下所示:
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是Decimal的类型
Bar.OuterLong是Long的类型
我可以进入第一级但无法找到如何从PropertyInfo中反映出类型,这可能不是正确的方法。
有人能告诉我怎么做吗?
布赖恩
答案 0 :(得分:1)
简单:
PropertyInfo pi = // get your property info here
pi.PropertyType; // This is what you're looking for. (Type)
答案 1 :(得分:0)
将第一个级别设为PropertyInfo
后,您需要递归到另一个级别并检查该类型中的属性。您可以通过查看PropertyInfo.PropertyType成员,然后使用该类型调用GetProperty / GetProperties并获取“第二级”属性来执行此操作。