Существует ли объект XML (например, XElement), который можно сериализовать в двоичном виде?

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

Существуют ли какие-либо типы, помеченные как сериализуемые в .NET Framework, такие как XElement или XmlElement (оба типа не помечены как сериализуемые)?


person Eric Schoonover    schedule 21.12.2009    source источник
comment
Просто интересно - вы ищете один или пытаетесь проверить, что его нет?   -  person Marc Gravell    schedule 21.12.2009
comment
Я проверяю, существует ли класс, представляющий XML-элемент, существует ли он в основной структуре и помечен как сериализуемый.   -  person Eric Schoonover    schedule 21.12.2009


Ответы (1)


Почему бы вам просто не добавить в класс сериализованного объекта свойство, которое говорит вам, что это такое? Я бы предложил IsXml.

person Hans Passant    schedule 21.12.2009
comment
Я мог бы создать класс-оболочку... прямо сейчас класс представляет собой просто строку, и я искал альтернативу, которая представляла бы элемент XML, уже существует в структуре и сериализуема. - person Eric Schoonover; 21.12.2009
comment
и это то, что я сделал. спасибо за то, что заставили мой мозг начать nobugz :) - person Eric Schoonover; 22.12.2009