Xml для перечисления при компиляции - PullRequest
0 голосов
/ 18 января 2012

Я просто пытаюсь создать небольшую пользовательскую библиотеку для преобразования единиц измерения.У меня есть все единицы измерения и значения преобразования в файле XML

<unit name="m">
   <multiply>1</multiply>
</unit>
<unit name="mm">
   <multiply>1E-3</multiply>
</unit>

, и во время компиляции я хотел бы преобразовать их (возможно, неправильное слово) в перечисление для других проектов, чтобы использовать

public enum Units{m, mm, ...};

Возможно ли это?Есть ли лучший способ сделать то же самое?

Ответы [ 2 ]

2 голосов
/ 18 января 2012

Посмотрите на шаблоны T4. Они автоматически создают любой текстовый файл (* .cs, * .txt, * .html, * .xml, * .vb и т. Д.) В Visual Studio. С таким шаблоном вы читаете ваш xml-файл и генерируете файл * .cs, содержащий ваше перечисление.

См. Генерация кода и текстовые шаблоны T4 в MSDN.

1 голос
/ 18 января 2012

Обычный код C #, вероятно, будет лучше для этого конкретного случая, поскольку количество единиц относительно мало.Вы получите IntelliSence для редактирования значений и устранения ошибок времени компиляции, когда вы напутаете ввод типов.Отладка нескольких уровней преобразования (XML -> CS -> некоторые внутренние структуры) интересна и дает вам полезную информацию, но если этот проект не предназначен исключительно для развлечения / обучения, он не очень продуктивен.Другим преимуществом является возможность для кого-то проще понимать код.

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

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