NHibernate и XML-сериализация с IList <T> - PullRequest
6 голосов
/ 27 января 2010

Я недавно начал использовать NHibernate, и в целом он мне очень нравится.

Пока я не столкнулся с проблемой необходимости сериализации в XML и обратно.

У меня есть класс, который имеет отношение многие ко многим, поэтому в родительском классе есть IList для хранения списка дочерних объектов.

Class parentClass{
  IList<childClass> childList;

  string varA;
  string varB;
}

Мне нужно иметь возможность сериализовать это в XML и обратно, но, очевидно, IList не позволяет мне сделать это из-за желания NHibernate контролировать конкретную реализацию IList, в данном случае с помощью Bag.

В идеале я хочу избегать использования отдельных DTO, просто чтобы заменить список, так как моей основной мотивацией для использования NHibernate была возможность использовать его с POCO, и мне не нужно было создавать неприятные рамки вокруг него.

Мне известно, что я могу взять на себя управление процессом сериализации с помощью ISerializable, но опять же, похоже, это сводит на нет смысл использования NHibernate в первую очередь для уменьшения сложности.

Кроме того, XML должен оставаться «простым», поскольку он используется для взаимодействия с третьими сторонами.

Как лучше всего обойти это ограничение?

Спасибо!

...