OK.Это глупо ... но ... Да.Существуют веские причины использовать такую сериализацию / десериализацию.Первый вариант, безусловно, быстрее второго ... но здесь так много можно сказать ...
Прежде всего, .Net уже имеет два метода сериализации XML, которые вы можете использовать.Они оба, вероятно, будут быстрее, чем ваш подход.Посмотрите на XmlSerializer и DataContractSerializer .Не изобретай велосипед.Используйте то, что уже есть.
Затем ваш собственный код для второго варианта может быть значительно ускорен за счет кэширования отображений на основе метаданных.Сделайте отражение один раз, а затем используйте таблицу поиска при десериализации.
Что подводит меня к следующему пункту: если вы делаете это только один раз, разница незначительна.Вы не заметите это вообще.Если вы делаете это тысячи раз, техника, основанная на отражении, гарантированно будет медленнее ... насколько?Время и узнай.
В конечном счете, хотя, если вы не сделаете его более эффективным, синхронизация - пустая трата времени, ИМО.
НО, эффективное использование декларативной сериализации / десериализации является отличнымподход в моем опыте.Это значительно снижает сложность вашего кода, который стоит много.Я вернусь к своей первой точке.Не изобретай велосипед.Если возможно, используйте один из двух существующих механизмов.