【发布时间】:2014-10-15 13:15:08
【问题描述】:
我有以下场景,我想获取实现接口的类的属性,但不包括那些虚拟的属性。为了清楚起见,我将给您举一个小例子:-
假设我们有以下界面:-
public interface IUser
{
int UserID { get; set; }
string FirstName { get; set; }
}
实现此接口的类:-
public class User: IUser
{
public int UserID { get; set; }
public string FirstName { get; set; }
public virtual int GUID { get; set; }
}
现在,我想做的是获取除虚拟之外的类的属性。当类没有实现接口时,以下工作就可以了:-
var entityProperties = typeof(User).GetProperties()
.Where(p => p.GetMethod.IsVirtual == false);
但是,当实现接口时,上面这行代码不会返回任何结果。如果我删除“位置”,它可以正常工作(但不会排除虚拟属性),如下所示:
var entityProperties = typeof(User).GetProperties();
有人知道吗?我搜索了但是我找不到任何结果。提前感谢您的帮助。
【问题讨论】:
-
您是否查看了这篇文章:[如何通过反射检查属性是否为虚拟属性?][1] [1]:stackoverflow.com/questions/12305945/…
标签: c# .net reflection system.reflection