преобразовать не сериализуемый объект в строку в C # - PullRequest
1 голос
/ 18 января 2010

У меня есть объект (User), который не помечен как [Serializable()].

Мне нужно преобразовать весь объект (включая дочерние объекты) в строку.

Это фактическая необходимость преобразования объекта из ответа стороннего инструмента, который не помечен как [Serializable()].

Как я могу преобразовать весь объект C # в строку / xml описанного выше сценария?

Ответы [ 3 ]

4 голосов
/ 18 января 2010

XmlSerializer не требуется атрибут Serializable, но он может только сериализовать открытых членов.

С наилучшими пожеланиями
Оливер Ханаппи


Редактировать: Вы можетесоздайте свой собственный класс адаптера, который реализует интерфейс IXmlSerializable и представляет один объект User, который ваш адаптер получает при создании.

1 голос
/ 18 января 2010

Если JSON удовлетворяет вашим потребностям, вы можете попробовать JsonExSerializer , так как ему не нужны никакие атрибуты для украшения целевых объектов.

0 голосов
/ 18 января 2010

Вы можете использовать рефлексию, чтобы найти всех членов, которые вас интересуют, например. открытые свойства и / или приватные поля, а затем создайте XML-документ по ходу работы.

Таким образом, код может быть универсальным и произвольным. :)

Однако помните, что отражение может быть очень медленным процессом во время выполнения. (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...