Атрибут DesignOnly обещает сделать именно это
На самом деле нет; он пытается прояснить это при доступе к нему в коде недоступен ; если вы лжете (то есть утверждаете, что что-то предназначено только для дизайна, когда оно доступно ), вы должны ожидать, что оно будет плохо себя вести. Компилятор знает, что доступно, и этот атрибут «только для дизайна» не определен в спецификации C #, поэтому он не имеет значения для компилятора, если вы добавите этот атрибут.
Попробуйте добавить:
[EditorBrowsable(EditorBrowsableState.Never)]
, на который смотрит редактор кода (IDE) (но только при использовании отдельной сборки) - обратите внимание, что это не мешает вам использовать его - он просто скрывает его.
Я полагаю, что текст MSDN пытается описать разницу между свойствами, которые на самом деле существуют в коде, и свойствами, которые только притворяются существующими; на самом деле вы можете делать все, чтобы фальшивые свойства отображались в конструкторе, и именно эти притворяются свойства могут быть помечены как предназначенные только для дизайна.