Сериализация IDictionary объектов - PullRequest
0 голосов
/ 13 июля 2010

Я пишу каркас журналирования и мне нужно сериализовать каждый объект в IDictionary<string,object>.Объект может быть простой строкой, int и т. Д., Или сложным бизнес-объектом или набором из них.Поэтому мне нужен гибкий метод для этого.

На более сложном конце я бы хотел, чтобы результат был примерно таким:

Object = IList<Person>

  1. Список людей:
    • Человек:
      • Имя: Дэвид Нил
      • Пол: Мужской
    • Человек:
      • Имя: Джон Смит
      • Пол: Мужской

Мне не нужно обрабатывать вложенные до уровняобъекта, содержащего коллекцию, которая содержит коллекции.

Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Вот реализация сериализуемого словаря , для справки.

Если значения в словаре всегда сериализуемы, тогда вы можете использовать сериализуемый словарь. Если это не так, не существует действительно хорошего решения для этого - если вы не можете контролировать то, что входит в словарь, вы не можете гарантировать, что сможете его сериализовать.

Если вы заранее знаете возможные типы, но не можете изменить их, чтобы они были сериализуемыми, возможно, вы можете создать объекты форматирования для каждого типа, а затем использовать поиск, чтобы найти правильный объект форматирования для каждого значения в словаре. .

1 голос
/ 13 июля 2010

Посмотрите ответы на этот вопрос о SO, чтобы начать работу.

В принципе, встроенного механизма для этого не существует.NET - однако, вы можете посмотреть на некоторый код objectDump , который есть в сети, , например .

К вашему сведению: очевидно, что код ObjectDumper является частью примеров VS C # (см. блог Эрика Уайта ):

Вы можете найти Object Dumper вфайл CSharpSamples.zip, который устанавливается вместе с Visual Studio 2008.

C: \ Program Files \ Microsoft Visual Studio 9.0 \ Samples \ 1033 \ CSharpSamples.zip

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