Данные CSV (неизвестный формат) в XML-данные (фиксированный формат) через бизнес-классы.Является ли использование отражения хорошей идеей? - PullRequest
1 голос
/ 01 июля 2011

Я работаю над библиотекой, которая создает довольно большие XML-файлы (предложения электронной коммерции).

Я использую бизнес-классы (такие как ProductInfo, PriceInfo и т. Д.), И я генерирую полученный из них XML.

Моя последняя задача - реализовать функциональность, позволяющую генерировать этот XML из входных файлов CSV.

Файлы CSV не имеют предварительно определенного формата, и это задача пользователя (мы предоставляемприложение, которое позволяет им сделать это) отобразить все столбцы CSV в их соответствующие аналоги в нашем фиксированном формате XML.

Таким образом, в основном их задача состоит в том, чтобы назначить каждый столбец одному из моих полей классов бизнеса: «все данныеиз этого столбца идет в ProductInfo.ShortDescription и т. д. ".

Наш формат, вероятно, изменится в будущем - он будет постоянно обновляться и расширяться - и поэтому я хотел бы сделать мою реализацию как можно более общей.

Решение, которое я рассмотрел, следующее:

  • библиотека возвращает имена всех доступныхle / обязательные поля
  • наш пользователь сопоставляет столбцы CSV с этими полями
  • Я реализую пользовательский атрибут (содержащий имя поля - строку) и помечаю им все поля в моих бизнес-классах.Поэтому, как только они сопоставили все столбцы и отправили данные в CSV, моя библиотека начинает создавать ProductInfos и т. Д., Присваивая входные значения полям, идентифицированным по имени атрибута.Это можно сделать с помощью рефлексии.

Это хорошая идея?У меня есть некоторые опасения по поводу производительности (я знаю, что рефлексия медленная), хотя я не уверен, насколько серьезной будет эта проблема.Есть ли другие проблемы, о которых мне следует знать?Есть ли лучшие альтернативы?

1 Ответ

0 голосов
/ 01 июля 2011

Почему бы просто не настроить веб-сервис для обработки этих данных для конечного пользователя?Если вы вносите изменения в свои бизнес-объекты, которые предоставляются через службу, схема службы WSDL будет автоматически обновлена.Это даст вам возможность автоматически печатать данные через схему автоматически.

...