.NET Динамические свойства класса

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by FireFenix, 9 Jan 2010.

  1. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Собсно возможно ли добавить, удалить или переопределить свойства класса в ходе выполнения программы?

    В частности нужно для PrepertyGrid, ибо оно работает только на свойствах класса :(
     
  2. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    Создай свой класс который будет наследоваться от нужного тебе класса. И пере определяй добавляй и т.д. методы, как позволит тебе базовый класс.
     
  3. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    это понятно, но нужна динамика

    PrepertyGrid получает значения и формат своих полей из свойств указанного класса => чтобы динамически заполнять PropertyGrid - нужно динамически изменять свойства класса или создавать новый класс с указанным набором свойств => как программно добавить, удалить или переопределить свойство класса?
     
    #3 FireFenix, 9 Jan 2010
    Last edited: 9 Jan 2010
  4. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    http://ru.wikipedia.org/wiki/Декоратор_(шаблон_проектирования)
    можно так, например, будет хорошо.
    (Надо добавить/изменить функциональность передавай декоратору =), и заполняешь поля в ... смотря на него )

    А без шаблонов. В Java такая функциональность 100% присутствует.(конечно кроме удаления, зато можно переопределить пустым методом). А вот на счёт с#, что то не могу отыскать; но как правило что есть в Java, то есть и в C#.

    Даже если ты найдёшь как добавлять методы, то кроме статических вещей тебе вряд ли что-либо позволят (не шибко круто).
     
    #4 Irdis, 9 Jan 2010
    Last edited: 9 Jan 2010