我使用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
答案 0 :(得分:3)
使用Type.IsInterface
确定属性的类型是否为接口类型。
Type t = typeof ( YourType );
foreach ( PropertyInfo p in t.GetProperties () )
{
if ( p.PropertyType.IsInterface )
{
// p is an interface property
}
}