Это распространенная проблема с генерацией кода; хотя вы можете добавлять члены и атрибуты уровня class через дополнительный частичный класс, вы не можете добавлять атрибуты к сгенерированным членам. Чтобы компенсировать это, некоторые основанные на атрибутах механизмы позволяют вам указывать атрибуты в классе (называя члена), но не любые из тех, которые вы цитируете.
Один из вариантов хардкора - написать TypeDescriptionProvider
, который предоставляет пользовательские PropertyDescriptor
определения для свойств. Это позволит вам полностью контролировать метаданные, используемые инструментами привязки пользовательского интерфейса, такими как PropertyGrid
, DataGridView
и т. Д.
Однако, возможно, это слишком большая работа, чтобы просто установить несколько свойств пользовательского интерфейса, если вы также можете установить их вручную! Но если вы заинтересованы в реализации этого варианта, дайте мне знать - это знакомая мне область, но слишком много кода, чтобы написать пример, если вы этого не хотите.
Примечание: если вы используете PropertyGrid
, то не может установить свойства вручную, но вы можете написать TypeConverter
, что немного меньше работы, чем полное TypeDescriptionProvider
; просто наследуйте от ExpandableObjectConverter
и переопределяйте GetProperties()
. Вам все еще понадобится прокладка PropertyDescriptor
, так что все еще нетривиально ...