Как удалить свойство из класса во время выполнения - PullRequest
8 голосов
/ 05 мая 2011

Можно ли удалить свойство из класса во время выполнения, например:

public Class A
{
  public int num1 {get;set;}
  public int num2 {get;set;}
  public int num3 {get;set;}
}

Class A Obj = new A();

Во время выполнения я хочу удалить num2 из obj.Возможно ли это?

Ответы [ 4 ]

9 голосов
/ 05 мая 2011

Этого нельзя сделать.После компиляции устанавливается определение класса.

1 голос
/ 05 мая 2011

Как уже говорили другие, это невозможно.

Вместо этого вы можете добавить другое свойство, например

public List<string> ignoredProperties {get; set;}

Затем во время выполнения добавьте num2 в этот список и проверьте его на наличие свойств, которые вы должны игнорировать.

0 голосов
/ 22 марта 2018

Я согласен с ответом Ник: Это не может быть сделано. После компиляции устанавливается определение класса.

Но вы можете динамически создавать свойство класса так, как вам нужно, с помощью отражения.

0 голосов
/ 20 марта 2017

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

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