Я бы поддержал предложения по использованию XML (будь то база ресурсов или нет), но хотел бы немного остановиться на вопросах синтаксического анализа / редактирования / обработки этого сценария.
Сначала короткое примечание, касающееся вопроса, связанного с Pavels , ответит, возможно ли визуальное редактирование XML с помощью редактора таблиц в Visual Studio (VS): это было на самом деле в VS 2003 (см., Например, ' Рисунок 6.28. Документ XML: представление данных ' здесь о том, как это выглядело), в VS 2005 функция была несколько понижена (см., Например, Внешний вид XML в Visual Studio 2005 против Visual Studio 2003 ) и в VS 2008 окончательно удален (см., например, Редактор XML-данных отсутствует в Visual Studio 2008 ), что весьма прискорбно, так как он имел свои применения и мог бы вам здесь тоже помочь. Та же (вероятно связанная) судьба относится и к конструктору схем XML, который, по крайней мере, получит замену в VS 2010, пока не знает о новом представлении данных XML.
Возвращаясь к исходному вопросу: учитывая ваши требования, вы можете предоставить выделенную XML-схему для ваших XML-файлов. Оказавшись на месте, любой приличный редактор XML сможет по крайней мере предоставить Intellisense (т. Е. значения перечисления видны при редактировании ) и предупредить вас об ошибочных записях данных. Если редактирование источников XML таким способом все еще кажется «сырым», вы можете получить более удобное редактирование «без источника» с помощью чего-то вроде XML Notepad 2007 .
Тем не менее, наиболее важным преимуществом наличия схемы XML является то, что это позволяет автоматизировать использование с помощью инструментов, в частности, вы можете генерировать оба, простые старые классы .NET и / или LINQ включил наборы данных из него через Microsoft Инструмент определения схемы XML (Xsd.exe) . (Для хорошо известных структурированных данных, т. Е. На основе схемы XML, это гораздо предпочтительнее, чем использование утомительного настраиваемого решения на основе t4.)
Конечно, получение схем в первую очередь и их правильное применение на практике может потребовать некоторых усилий, но это окупается за любую серьезную разработку, связанную с XML, imho.
И для текущей задачи вы, возможно, уже лучше и сможете выводить XML-схему из существующего класса Constant
, см. Ключ / t для Xsd .exe . Вероятно, первоначальный результат может быть неполным или не совсем адекватным, но с небольшим предварительным рефакторингом и / или ручной настройкой вы сможете довольно быстро получить приличную схему.
В результате вы сможете работать со своей базой кода примерно так же, как сейчас (предположительно), т.е. у вас будут строго типизированные перечисления и т. Д., Или вы можете переключаться с использованием данных XML через наборы данных с поддержкой LINQ. как вам угодно (на самом деле вы можете сделать оба параллельно).