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