Что является альтернативой атрибутов? - PullRequest
5 голосов
/ 05 февраля 2011

Атрибуты помогают нам использовать зависимые от класса значения вместо экземпляров, и они помогают нам переносить некоторые значения без сильной связи с нашими классами.Но я нашел некоторые ограничения на атрибуты.Мы не можем изменить эти значения во время выполнения.Итак, я ищу способ использовать похожую концепцию для атрибутов, так как мы видели много примеров настройки классов по беглому apis вместо атрибутов.Вы знаете такую ​​готовую библиотеку?Какова альтернатива использованию концепции атрибута для избежания ограничений атрибута?

Ответы [ 3 ]

3 голосов
/ 05 февраля 2011

На самом деле в некоторых случаях вы можете настроить атрибуты во время выполнения - например, через TypeDescriptor - но это влияет только на использование ComponentModel, а не на отражение. Вы также можете написать сам атрибут для выполнения таких задач, как поиск по resx для целей i18n.

Но другие варианты:

  • возможно статическое свойство, возможно, в соответствии с соглашением об именах
  • отдельная объектная модель, которая говорит о типах - метамодель, так сказать
  • файл конфигурации или аналогичный

Любой будет работать; что лучше всего зависит от того, что вы имеете в виду.

0 голосов
/ 05 февраля 2011

Возможно, я что-то упустил, но разве вы не можете просто добавить свойства с открытым сеттером в свои пользовательские атрибуты? Я только что попробовал это на реализации, где я использую атрибуты, и я могу изменить это свойство во время выполнения без проблем.

Какие значения вы хотите изменить?

0 голосов
/ 05 февраля 2011

Хорошей заменой атрибута в архитектуре плагина может быть использование соглашений об умном именовании.

...