Автоматическое ограничение доступа во время выполнения к свойству - PullRequest
0 голосов
/ 08 мая 2020

Возможно ли иметь класс с неизвестным количеством или типами свойств, который при необходимости ограничит доступ к свойству во время выполнения.

Например, если у нас есть следующий класс:

    public class SomeClass
    {
        public string SomeProperty { get; set; }
    }

Тогда доступ к результату свойства класса будет зависеть от некоторого состояния времени выполнения, которое может контролироваться классами, которые каким-то образом агрегированы с ним.

Возможным решением было бы добавить некоторые publi c логическая переменная, которая может быть установлена, а затем по ней определяется поведение.

Например:

    public class SomeClass
    {
        public bool CanAccess { get; set; }

        private string _someProperty;

        public string SomeProperty
        {
            get
            {
                if (CanAccess)
                {
                    return _someProperty;
                }

                throw new Exception();
            }
            set
            {
                if (CanAccess)
                {
                    _someProperty = value;
                }

                throw new Exception();
            }
        }
    }

Однако это решение потребует от разработчика класса:

  1. Сделать это правильно
  2. Сделать это для все свойства

Я не уверен, что это возможно, но я хочу каким-то образом реализовать этот класс, который избавит от необходимости проверять этот файл «CanAccess» для каждого свойства.

Это также означает, что если в будущем я добавлю еще несколько свойств к этому классу, они также будут автоматически соответствовать состоянию «CanAccess».

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...