Хранить данные в исходных файлах C # по сравнению с XML и т. Д.? - PullRequest
2 голосов
/ 18 апреля 2009

Это вопрос C #.

Я просто бродил, пытался ли кто-нибудь сохранить свои данные (например, файлы конфигурации) в файле * .cs вместо XML?

Я действительно ненавижу XML. Сама идея разбора html-подобной структуры каждый раз, когда вам нужны данные, кажется глупой.

Существуют ли легкие альтернативы (например, YAML) XML? В моем случае мне действительно нужно хранить некоторые данные для (игрового) уровня, где есть множество различных объектов, типов местности и т. Д. ... в плоском файле, чтобы я мог прочитать их позже.

Полагаю, я мог бы сериализовать свой класс Level , но я хочу, чтобы файл данных был редактируемым в любом текстовом редакторе, например.

Любая помощь будет приветствоваться, спасибо!

PS: Что касается файлов .cs, я забыл упомянуть, что хочу иметь возможность создавать (и сохранять) новые уровни в игре через редактор.

Ответы [ 13 ]

0 голосов
/ 18 апреля 2009

XML, даже считая довольно тяжелым, часто является лучшим выбором для хранения данных в файле, а LINQ для XML действительно облегчает чтение и запись этих данных.

Другой вариант, если ваши данные становятся довольно сложными, - это использовать что-то вроде SQLite, я использовал это раньше, и для однопользовательского доступа это действительно довольно быстро и просто.

0 голосов
/ 18 апреля 2009

Не делайте, если вы слышали об этом раньше, но вы должны проверить эту вещь YAML Это совершенно круто, с its own homepage и всем остальным.

0 голосов
/ 18 апреля 2009

Если ваши данные не слишком сложны или иерархичны, вы можете сохранить их в формате файла свойств, например:

level.name=My Level
level.mapfile=Map.txt

и т.д.

С другой стороны, с XML действительно легко работать в C # с сериализацией (ISerializable или DataContract), вам не нужно писать какой-либо код синтаксического анализа, фреймворк сделает все за вас. Редактирование XML в текстовом редакторе не может быть таким плохим!

Если вы хотите немного пойти на компромисс с XML, вы можете использовать NameValueCollection для хранения ваших элементов конфигурации. Затем вы можете сериализовать это, используя встроенную сериализацию .NET. Файл будет XML, но он будет в очень простом и легко редактируемом формате, и вам не придется беспокоиться о каких-либо ручных преобразованиях / проверках типов.

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