使用DTO类的简单getter / setter查找属性

时间:2016-10-19 06:45:01

标签: c# dto

在我的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。

1 个答案:

答案 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; 
            }