反射 - 作为接口的类的GetProperties

时间:2015-05-21 15:21:23

标签: c# reflection

我使用refelection迭代一个类的Public属性。

foreach (PropertyInfo prop in instance.GetType().GetProperties())
{
  ...do work 

这让我获得了所有公共财产。但是我只想获得作为接口的公共属性。例如,下面我想要了解会议' (这是一个接口)但不是帮助。

public ISession Session { get; set; } //My Interface - i want this

public string Help { get; set; } //I dont want this

1 个答案:

答案 0 :(得分:3)

使用Type.IsInterface确定属性的类型是否为接口类型。

Type t = typeof ( YourType );

foreach ( PropertyInfo p in t.GetProperties () )
{
    if ( p.PropertyType.IsInterface )
    {
        // p is an interface property
    }
}