Атрибут make, который описывает AccessLevel свойства модели? - PullRequest
0 голосов
/ 25 октября 2018

Итак ... У меня есть эта простая модель под названием 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; }
}

Я прочитал о Атрибутах , но все еще не знаю, как создать правильный и как-то получить к нему доступ, как

 Employee.Salary.GetAccessLevel();

Как я могу создать такой Атрибут?Или, может быть, есть лучший способ сделать это?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете попытаться использовать reflection получить атрибут свойства методом GetCustomAttribute и использовать linq для проверки значения аутентификации.

typeof(Employee)
        .GetTypeInfo()
        .GetProperties()
        .Where(x=>x.GetCustomAttribute<AccessLevel>().val > 1) // here can write your logic.
        .Select(x => x.Name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...