2009-04-20 3 views
3

Каков наилучший способ хранения XML-данных, используемых в программе? Используйте RESX файл или сохранить его в виде файла .xml и загрузки и выгрузки файлов в соответствии с требованиемФайлы RESX и данные xml

ответ

2

Третьим вариантом является размещение XML-файла в качестве встроенного ресурса в сборке. В этом случае используйте Assembly.GetManifestResourceStream() для загрузки XML.

Как писал Церебрус, когда требуется локализация, RESX станет для вас способом.

+0

let s say У меня очень большой xml-файл и помещен в файл resx. В этом случае весь файл загружается в память (ram) каждый раз при загрузке dll и до того момента, когда он не будет выгружен. Разве это не накладные расходы? –

+1

Для больших и/или многих файлов, которые действительно были бы недостатком. AFAIK, ресурсы загружаются вместе с сборкой. И вы не можете выгружать сборку, кроме как срывая домен приложения. Итак, если ваши файлы огромны, и вы не нуждаетесь в них все время, загрузка их из отдельных файлов может быть предпочтительной. –

+0

так, насколько огромны вы имеете в виду, когда говорите большой, скажем, в файле xml xml, файл размером 4kb? есть ли практический способ проверить это? –

2

.resx файлы являются XML файлы хотя и в соответствии с конкретной схемой (Microsoft ResX схемы v2.0). Эта схема была разработана с явной целью легко быть понятной и редактируемой вручную.

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

0

Ввод XML (BLOB) в .resx

Положительных:

  • Охотно доступный

Отрицательных:

  • это приведет к увеличению нагрузки на память, если содержание большой размер. Большой размер в сравнении с размером сборки без содержимого. Если размер сборки составляет 10kb, а размер контента - 10kb, хотя 10kb в сегодняшнем сценарии не больше, можно уменьшить размер сборки до половины, просто сохраняя содержимое в отдельном файле.
  • Кодирование управляемости резко сокращается, сохраняя XML как строку. Клавиша-значение-пары в RESX. Поскольку редактор resx не чувствителен к XML.

Если вы очень хорошо храните содержимое xml в качестве встроенного ресурса, вы можете создать XML-файл и сохранить его в качестве файлового ресурса в RESX.

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