Возможно ли иметь класс с неизвестным количеством или типами свойств, который при необходимости ограничит доступ к свойству во время выполнения.
Например, если у нас есть следующий класс:
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();
}
}
}
Однако это решение потребует от разработчика класса:
- Сделать это правильно
- Сделать это для все свойства
Я не уверен, что это возможно, но я хочу каким-то образом реализовать этот класс, который избавит от необходимости проверять этот файл «CanAccess» для каждого свойства.
Это также означает, что если в будущем я добавлю еще несколько свойств к этому классу, они также будут автоматически соответствовать состоянию «CanAccess».
Спасибо за помощь.