У меня есть некоторые классы, которые имеют несколько методов, которыми я действительно не хочу быть там, но там просто, потому что Сериализатору XML нужны они. Там должен так или иначе генерировать ошибки/предупреждения времени компиляции, если их называют из пользовательского кода?
Я знаю, что могу реализовать IXmlSerializable, и я также знаю, что могу выделить классы в классы чисто хранения данных, однако, я не задаю вопрос о том, как я должен разработать такую систему, я просто спрашиваю, существует ли способ генерировать ошибки/предупреждения времени компиляции, если их называет что-либо, что не является сериализатором XML...
Вы можете добавить
[Obsolete]
к способу. Свойство ISERROR
устарелоэтайтетрибут
контролирует, генерируется ли ошибка или предупреждение, и вы можете также предоставить пояснительное сообщение.
Вы можете скрыть методы от пользователей Intellisense, используя атрибут [редактируемые] [редактируемый] атрибут , а также из конструктора свойств, используя [BROWSBARY] , атрибут.
Я не рекомендую использовать [устарелоатрибут], потому что он передает другому значению, к какому методу фактически есть состояние метода. Вместо этого используйте комментарий, указывающий, что метод не должен использоваться из кода пользователя.
Также имейте в виду, что есть много пользователей, которые компилируют свой код с Предупреждениями угроз в качестве ошибок , что сделает невозможным для их компиляции действительного в этом случае.
Вы можете украсить указанные элементы атрибутом ObsoleteAttribute . Его цель немного отличается, но он будет генерировать предупреждения (или ошибки) компилятора при вызове из пользовательского кода.