У меня есть случай использования, когда я сериализую объекты по проводам через MSMQ (в основном, строки). Когда я читаю объект из очереди, я хочу быть в состоянии сказать, подразумевал ли пользователь объект для XML или строку. Я думал, что хороший способ сделать это - просто проверить тип. Если это XmlElement, то он становится данными XML, в противном случае он становится строкой или CDATA. Причина, по которой я не хочу просто проверять, являются ли данные действительными XML, заключается в том, что иногда предоставляются данные, которые должны быть сериализованы в виде строки, но на самом деле являются действительными XML. Я хочу, чтобы вызывающая сторона могла управлять десериализацией в строку или XML.
Существуют ли типы, помеченные как сериализуемые в .NET Framework, как XElement или XmlElement (оба не помечены как сериализуемые)?