所以...我有一个名为Employee
的简单模型:
public class Employee {
public int WorkerID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Salary { get; set; }
}
我想用AccessLevel
“修饰”所有属性,如下所示:
[AccessLevel(1)]
public class Employee {
[AccessLevel(1)]
public int WorkerID { get; set; }
[AccessLevel(1)]
public string FirstName { get; set; }
[AccessLevel(1)]
public string LastName { get; set; }
[AccessLevel(2)]
public int Salary { get; set; }
}
我已经读过Attributes,但仍然不知道如何创建正确的一个,并以某种方式访问它
Employee.Salary.GetAccessLevel();
如何制作这种属性?或者也许有更好的方法可以做到这一点?
答案 0 :(得分:1)
您可以尝试通过reflection
方法使用GetCustomAttribute
获取属性属性,并使用linq检查auth值。
typeof(Employee)
.GetTypeInfo()
.GetProperties()
.Where(x=>x.GetCustomAttribute<AccessLevel>().val > 1) // here can write your logic.
.Select(x => x.Name);