make属性,它描述模型属性的AccessLevel?

时间:2018-10-25 09:58:43

标签: c# asp.net-core custom-attributes

所以...我有一个名为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();

如何制作这种属性?或者也许有更好的方法可以做到这一点?

1 个答案:

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