Исходя из моего недавнего вопроса о больших, сложных объектах как результат веб-службы. Я думал о том, как обеспечить, чтобы все будущие дочерние классы были сериализуемыми в XML.
Теперь, очевидно, я мог бы реализовать интерфейс IXmlSerializable, а затем привязать к нему читателя/писателя, но я бы хотел этого избежать, так как тогда это означает, что мне нужно создавать экземпляр читателя/писателя всякий раз, когда я хочу это делать, и в 99,99% случаев Я собираюсь работать со строкой, поэтому я могу написать свою собственную.
Однако, чтобы сериализовать в XML, я просто украшаю класс и его членов Xml??? атрибуты (XmlRoot, XmlElement и т.д.), а затем передают их в XmlSerializer и StringWriter для получения строки. Что все хорошо. Я намереваюсь поместить метод для возврата строки в универсальный служебный метод, поэтому мне не нужно беспокоиться о типе и т.д.
Это касается меня: если я не украшаю класс необходимыми атрибутами, ошибка не выдается до времени выполнения.
Есть ли способ принудительного оформления атрибутов? Можно ли это сделать с помощью FxCop? (Я еще не использовал FxCop)
ОБНОВИТЬ:
Извините за задержку с этим, ребята, многое сделать!
Определенно, как идея использовать рефлексию, чтобы сделать это в тестовом примере, а не прибегать к FxCop (хотелось бы, чтобы все было вместе). Ответ Фредрика Калсета был фантастическим, спасибо за включение кода, так как это, вероятно, заняло бы у меня немного копаний выяснить, как это сделать самому!
+1 другим парням за подобные предложения :)