make Attribute,它描述了模型属性的AccessLevel?
make Attribute, which describes AccessLevel of model property?
所以...我有一个名为 Employee
的简单模型:
public class Employee {
public int WorkerID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Salary { get; set; }
}
而且我想 "decorate" 所有具有 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();
如何制作那种属性?或者也许有更好的方法来做到这一点?
您可以尝试使用reflection
通过GetCustomAttribute
方法获取属性属性并使用linq检查授权值。
typeof(Employee)
.GetTypeInfo()
.GetProperties()
.Where(x=>x.GetCustomAttribute<AccessLevel>().val > 1) // here can write your logic.
.Select(x => x.Name);
所以...我有一个名为 Employee
的简单模型:
public class Employee {
public int WorkerID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Salary { get; set; }
}
而且我想 "decorate" 所有具有 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();
如何制作那种属性?或者也许有更好的方法来做到这一点?
您可以尝试使用reflection
通过GetCustomAttribute
方法获取属性属性并使用linq检查授权值。
typeof(Employee)
.GetTypeInfo()
.GetProperties()
.Where(x=>x.GetCustomAttribute<AccessLevel>().val > 1) // here can write your logic.
.Select(x => x.Name);