Джером, я думал, что возрожу ваш вопрос, поскольку у меня есть то же требование.
В моем конкретном случае я думал об использовании регионов в качестве интерфейса для сериализации. В настоящее время я использую атрибуты, но, как вы хотели бы предложить альтернативы, синтаксический сахар в форме группировки.
Два решения, которые могут быть достаточными: 1) Шаблоны T4 для генерации частичной логики класса, которая добавляет необходимые атрибуты. Другими словами, T4 содержит логику группировки. Это, вероятно, слишком уродливо, чтобы заслужить серьезное внимание.
2) События предварительной сборки, которые изменяют код для обеспечения того, чтобы сгруппированные элементы региона были отмечены необходимыми атрибутами. Это часть компромисса.
Было бы очень интересно узнать о любых методах манипуляции с областью предварительной сборки.
В ответ на идею подклассов это не отличный вариант, так как он либо усложняет интерфейс контракта, либо означает создание дополнительных свойств для доступа к этим принудительным подклассам.
'# region' является директивой предварительного процессора. Он не компилируется. Поэтому вы не можете использовать отражение. возможно, используя VS api для изучения файла .cs? –
Почему вы не можете пометить поля атрибутом? Поля могут иметь несколько атрибутов. – shf301