Внешние данные C # (аналог iOS Plist) - PullRequest
3 голосов
/ 13 октября 2011

Я ищу лучшие практики по извлечению простых структур данных в удобочитаемые файлы.

У меня есть некоторый опыт работы с функциональностью plist в iOS (которая, я считаю, похожа на XML), и я хотел бы найтичто-то похожее.

Со стороны .NET кажется, что путь .resx - это путь, но, поскольку я занимаюсь исследованиями, все поднимают локализацию, и эти данные не предназначены для локализации..Resx по-прежнему является ответом?

Если так, есть ли способ получить структуру словаря всех данных .resx вместо чтения одной записи?Я хотел бы знать такие вещи, как количество записей, массив всех ключей, массив всех значений и т. Д.

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Учитывая мои барабанщики, я бы избегал XML. Это разработано, чтобы было легко разобрать. Это многословно, не предназначено для восприятия человеком. Избегайте налога на угловые скобки, если можете.

Есть JSON . Это полезная альтернатива. Просто, легко читается, легко разбирается. Нет налога на угловые скобки. Это один из вариантов. YAML - это другое (это расширенный набор JSON).

Есть LISP-стиль S-выражения (см. Также wikipedia ). Вы также можете использовать термины в стиле Пролога для создания структур данных по вашему выбору (также довольно легко разбираемых).

И есть старые DOS / Windows INI-файлы . Существует множество инструментов для их решения, включая реализации .Net / CLR.

Вы можете просто сотрудничать Формат Apple pList из OS X. Вы можете использовать его старое школьное "ASCII" (текстовое) представление или его XML-представление .

Вы также можете (желательно, ИМХО) написать собственный / "маленький" язык, который будет соответствовать вашим потребностям. Модное слово du jour , для которого в наши дни это «предметно-ориентированный язык». Я бы не использовал языковые средства Visual Studio / C # /. Net для конкретного домена, потому что то, что вы получите, будет основано на XML.

Terrance Parr отлично ANTLR , пожалуй, инструмент выбора для построения языка. Он написан на Java, поставляется с IDE для работы с грамматиками и деревьями синтаксического анализа и может работать с несколькими языками (Java, C #, Python, Objective-C, C / C ++ являются современными. Существует некоторая поддержка хорошо. Существует несколько других целевых языков для более старых версий, с различной степенью полноты.)

Книги Терранса Парра одинаково превосходны:

2 голосов
/ 13 октября 2011

XML (любой формат, а не только resx) или CSV являются распространенным выбором. XML легче использовать в коде, если он является действительным XML.

Просмотрите LINQ to XML (http://msdn.microsoft.com/en-us/library/bb387098.aspx), чтобы начать чтение XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...