2010-07-12 2 views
2

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

Я знаю, как реализовать IXmlSerializable, но это может быть очень много работы; так как большинство свойств не требуют специальной обработки. Есть ли способ для меня написать код для обработки этих «специальных свойств» и иметь стандартный сериализатор XML, сериализующий свойства, которые он знает, как сериализовать?

Кроме того, приветствуются предложения для библиотек с открытым исходным кодом или аналогичные, которые могут лучше выполнять сериализацию объектов в XML без особого пользовательского кода.

ответ

1

Существует инструмент под названием Automapper Этот инструмент отображает два типа друг к другу. Для вашей проблемы вы можете создать стандартный тип соответствия и сопоставить нестандартный с этим. Большинство свойств будут сопоставлены с автоматом. Специальные, которые вы могли бы отобразить с помощью собственных методов.

Сначала вы должны настроить свои отображения:

Mapper.CreateMap<ITestSequence, TestSequence>(); 
Mapper.CreateMap<ITestBlock, TestBlock>(); 

А затем сопоставить opjects:

Mapper.Map(srcTb, dstTb); 

, который установит все общие свойства. Остальное вы могли бы сделать сами.

Смежные вопросы