反射-接口类的GetProperties

本文关键字:GetProperties 接口 反射 | 更新日期: 2023-09-27 17:50:14

我使用重选来遍历类的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

反射-接口类的GetProperties

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

Type t = typeof ( YourType );
foreach ( PropertyInfo p in t.GetProperties () )
{
    if ( p.PropertyType.IsInterface )
    {
        // p is an interface property
    }
}