Ну, я не могу ответить, почему это не доступно, но я могу подтверждать, что это не проблема CLI. Спецификация CLI не упоминает его (насколько я вижу), и если Вы используете IL непосредственно, можно создать универсальный атрибут. Часть спецификации C# 3, которая запрещает его - разделяет 10.1.4 "Спецификации основы класса", не дает выравнивания.
аннотируемая спецификация ECMA C# 2 не дает полезной информации также, хотя это действительно обеспечивает пример того, что не позволяется.
Моя копия аннотируемой спецификации C# 3 должна прибыть завтра... Я буду видеть, дает ли это больше информацию. Так или иначе это - определенно решение языка, а не во время выполнения.
РЕДАКТИРОВАНИЕ: Ответ от Eric Lippert (перефразировал): никакая конкретная причина, кроме избежать сложности и на языке и на компиляторе для варианта использования, который не добавляет много значения.
Сначала выполните эту команду:
$ sudo xhost +
Затем выполните команду, которую вы хотите, как другой пользователь:
$ sudo -i -u username
$ command you want to run
Когда вы закончите:
$ sudo xhost -
Вероятно, вам нужно указать вашему X-серверу принимать соединения от другого пользователя, а не от того, который владеет экземпляром сервера (вы). Посмотрите на команду xhost.