在我的DTO课程中,我有一些属性,只有简单的getter / setter(get; set;
),而有些属性有更复杂的getter / setter(比如通过其他属性/变量评估值等)
[Serializable]
public class MyClassDto
{
public virtual string Name { get; set; }
public virtual string Description { get { return Name; } set { Name = value; } }
....
}
在上面的示例中,我想获取属性Name
,但不想获取Description
我正在尝试使用PropertyInfo
来查找具有get;set;
作为getter / setter但未能执行此操作的属性。
我这样发展的原因是;简单get;set;
的属性在我的Entity类中具有相同名称的属性,以及数据库表中的列。我的实体还有一些在数据库表上没有相关列的属性。因此,使用简单的getter / setter获取属性将为我提供相关数据库列的属性。
同时,我正在使用NHibernate。
答案 0 :(得分:1)
检查这是否符合您的要求。
var property = typeof(MyClassDto).GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(t => t.CanRead && t.CanWrite);
foreach (var item in property)
{
string propertyName = item.Name;
bool CompilerGenerated = item.GetGetMethod()
.GetCustomAttributes(typeof(CompilerGeneratedAttribute), true).Any();
//Description is not CompilerGeneratedAttribute so return false;
}