Как я могу создать строго типизированную структуру для доступа к файлам в XNA Content Project?

Преамбула:
Я работаю с проектом XNA Content для хранения всех различных текстур (и, возможно, других ресурсов), которые я использую как часть разработки игры .

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

Я хотел бы автоматизировать проекцию дерева каталогов / файлов внутри проекта содержимого в иерархию объектов, чтобы избежать прямого использования строковых литералов и получить преимущества от использования строго типизированных объектов.


Пример:
Вместо использования
Texture2D tex = Content.Load ("Textures / defaultTexture32");
Я бы предпочел
Texture2D tex = Content.Load (Content.Textures.defaultTexture32);


Вопрос:
Есть ли уже существующее решение этой проблемы? (Я ничего не нашел в Google)


Дополнительные сведения:
Я почти уверен, что это можно сделать с помощью шаблона T4; вероятно, в сочетании с инструментами DTE. Я предпринял первоначальную попытку сделать это, но я продолжаю сталкиваться с препятствиями из-за моего неопытности с обоими наборами инструментов, но я работал с T4MVC в прошлом, который делает нечто подобное; к сожалению, он проецирует структуру классов, а не файловую систему, и его нелегко адаптировать.

Мне не требуется решение для использования T4 или DTE, они просто кажутся, как будто они, вероятно, будут частью решения.

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

Возможность дополнительной фильтрации по типам файлов и т. Д. Будет дополнительным специальным бонусом.

Для тех, кто не сразу видит преимущества этого; подумайте, что произойдет, если вы переименуете или удалите файл. Приложение продолжало бы нормально компилироваться, но вылетало бы во время выполнения. Возможно, только после того, как будут выполнены особые условия для доступа к определенному файлу. Если все имена файлов проецируются в структуру объекта (которая восстанавливается каждый раз при построении проекта или, возможно, даже при каждом изменении), вы получите ошибки времени компиляции, указывающие на недостающие ресурсы и, возможно, избегая большого количества будущих боль.

Спасибо за уделенное время.

8
задан Mir 14 August 2011 в 18:13
поделиться